WinForm窗体的MouseDown事件和MouseMove事件的问题
松果工作室 2006-10-31 08:29:34 我在阅读“制作不规则窗体”的相关文章时,有以下两个问题弄不明白,请高手指点:
...
Private Point mouseOffSet;
private bool isMouseDown=false;
...
private void MainForm_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
mouseOffset = new Point(-e.X, -e.Y);
isMouseDown = true;
}
}
private void MainForm_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (isMouseDown)
{
Point mousePos = Control.MousePosition;
mousePos.Offset(mouseOffset.X, mouseOffset.Y);
this.Location = mousePos;
}
}
Q1:为什么要使用(-e.X, -e.Y),而不是直接用(e.X,e.Y)?
Q2:OffSet()方法是将鼠标平衡(x,y)个像素吗?