我想确定MDI子窗体的位置。这样就没有人能把它从一个地方移到另一个地方。我尝试实现下面的代码,但它给出了screen.width的错误,这是我的代码:-将此代码放在一个模块中:
public Sub CenterMe(Myform as Form)
with Myform
Myform.Left = (Screen.Width - .Width) / 2
Myform.Top = (Screen.Height - .Height) / 2 ' - mdiMain.StatusBar.Height
End With
End Sub现在,在孩子的form load事件中-这样调用它:
Private Sub Form_Load()
'do some initialization stuff...
'...
Call CenterMe(me)
End Sub发布于 2016-10-17 01:58:03
一旦设置了窗体的初始位置,您就可以通过重写窗体的WndProc方法来防止窗体的位置被更改,并像这样监听WM_MOVE窗口消息。
protected override void WndProc(ref Message message)
{
const int WM_SYSCOMMAND = 0x0112;
const int SC_MOVE = 0xF010;
switch (message.Msg)
{
case WM_SYSCOMMAND:
int command = message.WParam.ToInt32() & 0xfff0;
if (command == SC_MOVE)
return;
break;
}
base.WndProc(ref message);
}https://stackoverflow.com/questions/40072729
复制相似问题