MDI子窗体显示(机房问题)

    打开 MDI 主窗体,因为要显示各个控件,所以添加了一个 picturebox 控件,然而问题来了,子窗体不能显示,但当把子窗体的 MDIChild 属性设置为 flase 时,窗体能正常显示,显然不是代码问题,于是我把 picturebox 控件移除, MDIChild 设置为 true ,发现能显示,原因找到了,是 picturebox 控件把子窗体挡住了。既然找到了问题,那么如何来解决这个问题呢? 我用了如下方法:

1、 在模块中声明。

Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

2、 在单击菜单下的代码中。

SetParent 子窗体名称.hWnd,主窗体名称.hWnd。如:

SetParent frmAddUser.hWnd,frmmain.hwnd

SetParent 是一个API函数,它的作用就是将本来属于主窗体的子窗体转移到另一个主窗体(这里是picturebox)上去,也是相当于这个picturebox是对应子窗体的“继父”。

3、 最后,显示出来的是子窗体的边框。还需要对子窗体的大小进行一下设置。在子窗体的form load中。

Me.Width = 数字
Me.Height = 数字

具体数字自己设定。

你可能感兴趣的:(MDI子窗体显示(机房问题))