Thứ Hai, 5 tháng 8, 2013

Các sự kiện chuột (Mouse) trong C#

Sau đây là một số sự kiện thường dùng của điều khiển:
Sự kiện
Đối số
Phát sinh khi
Các sự kiện chung
Click
EventArgs
Click chuột lên điều khiển.
Double Click
EventArgs
Click đôi lên điều khiển
Enter
EventArgs
Nhấn phím Enter tại điều khiển đang chọn
TextChanged
EventArgs
Kí tự thay đổi chứa trong điều khiển
Leave
EventArgs
Trỏ rời khỏi điều khiển
Validating
CancelArgs
Đang kiểm tra dữ liệu điều khiển
Validated
EventArgs
Sau khi kiểm tra dữ liệu điều khiển
Sự kiện chuột
MouseHover
EventArgs
Trỏ chuột đang ở vị trí của điều khiển
MouseMove
MouseEventArgs
Trở chuột đang di chuyển trên vùng của điều khiển
MouseEnter
EventArgs

MouseDown
MouseEventArgs
Click chuột lên điều khiển
MouseUp
MouseEventArgs
Thả chuột sau khi nhấp
MouseWheel
MouseEventArgs

MouseLeave
EventArgs
Trỏ chuột rời khỏi vùng điều khiển



Tạo ứng dụng Windows Form dùng Text editor.
Gõ vào code file nội dung như sau:
using System;
using System.Drawing;
using System.Windows.Forms;

namespace MouseEventDemo
{
    public class MouseEvents : Form
    {
        private Label lbl;
        private Button btnReset;
        private TextBox txt;

        public MouseEvents()
        {
            Text = "Mouse Event Demo";
            Size = new Size(400, 650);

            btnReset = new Button();
            btnReset.Parent = this;
            btnReset.Location = new Point(250, 50);
            btnReset.Text = "Reset";
            btnReset.Click += new EventHandler(btnReset_Click);

            lbl = new Label();
            lbl.Parent = this;
            lbl.Location = new Point(50, 50);
            lbl.Size = new Size(150, 25);
            lbl.BorderStyle = BorderStyle.Fixed3D;
            lbl.MouseEnter += new EventHandler(lbl_MouseEnter);
            lbl.MouseHover += new EventHandler(lbl_MouseHover);
            lbl.MouseLeave += new EventHandler(lbl_MouseLeave);
            lbl.MouseDown +=new MouseEventHandler(MouseEvents_MouseDown);
            lbl.MouseUp += new MouseEventHandler(lbl_MouseUp);
            lbl.Click += new EventHandler(lbl_Click);
            lbl.DoubleClick += new EventHandler(lbl_DoubleClick);

            txt = new TextBox();
            txt.Parent = this;
            txt.Location = new Point(50, 100);
            txt.Size = new Size(300, 500);
            txt.BorderStyle = BorderStyle.FixedSingle;
            txt.Multiline = true;
            txt.ScrollBars = ScrollBars.Vertical;
        }

        static void Main()
        {
            Application.Run(new MouseEvents());
        }

        void lbl_DoubleClick(object sender, EventArgs e)
        {

            lbl.Text = "DoubleClick";
            TextBoxDraw("Label DoubleClick");
        }

        void lbl_Click(object sender, EventArgs e)
        {
            lbl.Text = "Click";
            TextBoxDraw("Label Click");
        }

        void lbl_MouseUp(object sender, MouseEventArgs e)
        {
            MouseMsg("MouseUp", e);
        }

        void MouseEvents_MouseDown(object sender, MouseEventArgs e)
        {
            MouseMsg("MouseDown", e);
        }

        void lbl_MouseLeave(object sender, EventArgs e)
        {
            lbl.Text = "MouseLeave";
            TextBoxDraw("Label MouseLeave");
        }

        void lbl_MouseHover(object sender, EventArgs e)
        {
            lbl.Text = "MouseHover";
            TextBoxDraw("Label MouseHover");
        }

        void lbl_MouseEnter(object sender, EventArgs e)
        {
            lbl.Text = "MouseEnter";
            TextBoxDraw("Label MouseEnter");
        }

        void btnReset_Click(object sender, EventArgs e)
        {
            lbl.Text = "";
            txt.Text = "";
        }

        private void TextBoxDraw(String str)
        {
            txt.AppendText("\r\n" + str);
        }

        private void MouseMsg(string lblText, MouseEventArgs e)
        {
            lbl.Text = lblText;
            string str;
            str = "Label " + lblText;
            str += "\r\n\tButton: " + e.Button.ToString();
            str += "\r\n\tClicks: " + e.Clicks.ToString();
            str += "\r\n\tX: " + e.X.ToString ();
            str += "\r\n\tY: " + e.Y.ToString ();
            TextBoxDraw(str);          
        }
    }
}
Kết quả chạy chương trình như sau:

Code demo project: MouseEventDemo.rar

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

Đăng nhận xét