天天看點

winform 滑鼠拖動圈選區域

效果展示

winform 滑鼠拖動圈選區域

需要三個滑鼠的時間來配合

//定義全局變量
		int x;
        int y;
        bool isMouthDown = false;
        int width;
        int height;
        Graphics g;

		// 給窗體  加 滑鼠點選 MouseDown 事件
        private void Form2_MouseDown(object sender, MouseEventArgs e)//MouseEventArgs 擷取滑鼠位置
        {
            x = e.X;
            y = e.Y;
            // true 開始
            isMouthDown = true;
        }
		//給窗體  加 滑鼠移動 MouseMove事件  
        private void Form2_MouseMove(object sender, MouseEventArgs e)
        {
            if (isMouthDown)
            {
                width = Math.Abs(e.X - x);
                height = Math.Abs(e.Y - y);
                //建立類似畫闆
                g = CreateGraphics();
                g.Clear(BackColor);
                g.FillRectangle(Brushes.CornflowerBlue, //顔色
                    x < MousePosition.X ? x : e.X, 
                    y < MousePosition.Y ? y : e.Y, 
                    width, height);
            }
        }
		//給窗體  加 滑鼠松開 MouseUp事件  
        private void Form2_MouseUp(object sender, MouseEventArgs e)
        {
            width = Math.Abs(e.X - x);
            height = Math.Abs(e.Y - y);
            //建立類似畫闆
            g = CreateGraphics();
            g.Clear(BackColor);
            g.FillRectangle(Brushes.CornflowerBlue, //顔色
                x < MousePosition.X ? x : e.X,
                y < MousePosition.Y ? y : e.Y,
                width, height);
            isMouthDown = false;
        }
           

繼續閱讀