效果展示
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;
}