首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何防止mdichild窗体在屏幕上移动/重新定位

如何防止mdichild窗体在屏幕上移动/重新定位
EN

Stack Overflow用户
提问于 2016-10-17 00:42:46
回答 1查看 173关注 0票数 0

我想确定MDI子窗体的位置。这样就没有人能把它从一个地方移到另一个地方。我尝试实现下面的代码,但它给出了screen.width的错误,这是我的代码:-将此代码放在一个模块中:

代码语言:javascript
运行
复制
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事件中-这样调用它:

代码语言:javascript
运行
复制
Private Sub Form_Load()
    'do some initialization stuff... 
    '...
    Call CenterMe(me)
End Sub
EN

Stack Overflow用户

发布于 2016-10-17 01:58:03

一旦设置了窗体的初始位置,您就可以通过重写窗体的WndProc方法来防止窗体的位置被更改,并像这样监听WM_MOVE窗口消息。

代码语言:javascript
运行
复制
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);
}
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40072729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档