我有一个没有标题栏的windows窗体。我想用鼠标拖动它。在网上搜索后,我发现了移动窗体的代码:
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case 0x84:
base.WndProc(ref m);
if ((int)m.Result == 0x1)
m.Result = (IntPtr)0x2;
return;
}
base.WndProc(ref m);
}
但它有一个问题:它仅在未被任何控件覆盖窗体区域上起作用例如,如果使用标签或分组框,则无法通过单击来移动窗体
我怎样才能解决这个问题?
5条答案
按热度按时间dfty9e191#
一种方法是像这样实现
IMessageFilter
。e4eetjau2#
这基本上就是您希望做的事情:
Make a borderless form movable?
您可以将相同的程式码加入至表单上其他控件的鼠标器按下事件,以完成相同的工作。
thigvfpy3#
Make a borderless form movable?
w8biq8rn4#
当用户在窗体中的lblMoveForm Label上按下鼠标时,将执行以下事件处理程序。
xbp102n05#