C# WindowsForm- Di chuyển 1 control trong Form bằng kéo thả chuột
DI CHUYỂN MỘT CONTROL BẰNG CÁCH KÉO THẢ CHUỘT
Để kéo thả một control này từ ví trí này đến vị trí khác ta sẽ dung tới
sự kiện MouseDown để lấy tọa độ control và Sự kiên di chuyển của chuột (Mouse
Move) của con trỏ trên form để di chuyển Control.
·
Ví dụ : Di chuyển một button trong form
GIả sử ta
có cmdButton1, Form frmMain.
Tóm tắt
-
Sự kiện cần dùng
+ MouseDown
+
MouseMove
+ MouseUp
* Đầu tiên khai báo biến
int
toadox;
int toadoy;
bool isMove;
Lấy tọa độ
của chuột khi nhấn và giữ chuột trái vào button1: Code trong sự kiện MouseDown của
button:
private void
cmdButton1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
isMove = true;
toadox = e.X;
toadoy = e.Y;
}
}
Di chuyển button trong sự kiện mousemove
private void
cmdButton1_MouseMove(object sender, MouseEventArgs e)
{
if (isMove == true)
{
cmdButton1.Left += e.X - toadox;
cmdButton1.Top += e.Y - toadoy;
}
}
Đánh dấu
trạng thái Không di chuyển khi nhả chuột trái
private void cmdButton1_MouseUp(object sender, MouseEventArgs
e)
{
isMove = false;
}
Toàn bộ code frmMain:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace KeoThaControl
{
public partial class Form1 : Form
{
int toadox;
int toadoy;
bool isMove;
public Form1()
{
InitializeComponent();
}
// Lấy tọa độ chuột khi nhấn chuột trái
private void
cmdButton1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
isMove = true;
toadox = e.X;
toadoy = e.Y;
}
}
//Khi di chuyển chuột. lấy tọa độ mới và di chuyển button1
tới vị trí mới
private void
cmdButton1_MouseMove(object sender, MouseEventArgs e)
{
if (isMove == true)
{
cmdButton1.Left += e.X - toadox;
cmdButton1.Top += e.Y - toadoy;
}
}
//Đánh dấu trạng thái Không di chuyên nữa khi nhả chuột trái
private void
cmdButton1_MouseUp(object sender, MouseEventArgs e)
{
isMove = false;
}
}
}
C# WindowsForm- Di chuyển 1 control trong Form bằng kéo thả chuột
Reviewed by Nguyen Nam
on
10/29/2014
Rating:
Không có nhận xét nào: