0
我正在一个简单的覆盖应用程序,其中边框样式设置为“无”。
我希望能够拖动我的Winform,无论我点击窗体还是其控件。Draggable WinForm(覆盖)与控件无边框样式
,我发现这个片断:
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);
}
move a c# form without border style (by ShaneB)
这个片段让我使窗体dragable,如果我不上单击控件。
表单也应该可以在其他控件上拖动(如groupboxes),同时触发mouseDown事件。
备注:如果可能的话,复选框应该仍然可以选中/取消选中。如果最后一点应该是复杂的,我可以解决这个问题。
提醒一句......这种事情几乎总是有问题的,几乎总是有点的给用户带来痛苦。尽量不要重新定义Windows体验。 – BenjaminPaul 2014-09-22 08:44:25
我知道我应该尽量避免那种重新定义Windows体验。但它将是一个非常简单的应用程序,它只是显示另一个程序的一些当前状态。这就是为什么我通过覆盖将是最好的解决方案,我在TopMost上设置并从窗体中移除背景。 (通过设置TransparencyKey == BackColor)。 – MrMAG 2014-09-22 08:50:36
如果窗口应该是可移动的,我会给窗口一个边框,如果我是你,我会考虑这些问题,你有代码味道。 – BenjaminPaul 2014-09-22 08:58:37