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 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: 5

Không có nhận xét nào:

Được tạo bởi Blogger.