0
我有一个没有边框,标题栏,菜单等的Windows窗体。我希望用户能够按住CTRL键,左键单击表单上的任意位置并拖动它,移动。任何想法如何做到这一点?我想这一点,但它闪烁,不少:如何在按住鼠标的同时移动表单?
private void HiddenForm_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
this.SuspendLayout();
Point xy = new Point(this.Location.X + (e.X - this.Location.X), this.Location.Y + (e.Y - this.Location.Y));
this.Location = xy;
this.ResumeLayout(true);
}
}
这很好,只是好奇它在做什么? – esac 2009-10-06 23:35:47
它是在默认的窗口过程中,在窗口的“标题”非客户区发生鼠标停止事件。 尽管如果你想要正确的实现,你应该添加你自己的消息处理钩子并且处理WM_NCHITTEST消息来返回HT_CAPTION你想要启用表单拖动的窗体区域。 – 2009-10-07 00:01:06
+1甜蜜......你赢了:)我甚至没有得到正确的数学LOL。 – 2009-10-07 00:59:03