窗体拖动事件

窗体的拖动事件

标题框不显示:
将窗体的边框和外观属性 FormBorderStyle设为None

拖动方法如下:

为窗体添加一个私有域:
private System.Drawing.Point mousePoint;

为窗体添加鼠标按下事件(注意对鼠标按键进行筛选)
private void MainForm_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(e.Button == MouseButtons.Left)
{
 this.mousePosition.X = e.X;
 this.mousePosition.Y = e.Y;
}
}

为窗体添加鼠标移动事件处理方法:

private void MainForm_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(e.Button == MouseButtons.Left)
{
 Form.Top = Control.MousePosition.Y - mousePosition.Y - SystemInformation.FrameBorderSize.Height - SystemInformation.CaptionHeight;
 Form.Left = Control.MousePosition.Y - mousePosition.Y - SystemInformation.FrameBorderSize.Width;
}
}
这里,如果窗体没有标题栏,可以去掉“-SystemInformation.CaptionHeight”;如果窗体没有边框,还可以去掉“-SystemInformation.FrameBorderSize.Height”和“-SystemInformation.FrameBorderSize.Width”。
如下:无标题栏和边框
private void MainForm_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(e.Button == MouseButtons.Left)
{
 Form.Top = Control.MousePosition.Y - mousePosition.Y;
 Form.Left = Control.MousePosition.X - mousePosition.X;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值