@H_301_1@
@H_301_1@ DimNewMDIChild As New Form3 ‘实例化子窗体Form3
@H_301_1@
@H_301_1@ NewMDIChild.MdiParent = Me ‘设置子窗体的父窗体为本窗体
@H_301_1@
@H_301_1@ NewMDIChild.Show() ‘显示子窗体
@H_301_1@
@H_301_1@
@H_301_1@
@H_301_1@ '声明SetParent函数,这是一个API函数 用来设置子窗体
@H_301_1@
@H_301_1@ Declare FunctionSetParent Lib "user32" Alias "SetParent" (ByVal hWndChildAs IntPtr,
@H_301_1@
@H_301_1@ByVal hWndNewParent As IntPtr) As Long
@H_301_1@
@H_301_1@
@H_301_1@ SetParent(Form4.Handle,Me.Handle)
@H_301_1@
@H_301_1@ Form4.Show()
@H_301_1@
@H_301_1@
@H_301_1@
@H_301_1@
@H_301_1@
@H_301_1@
@H_301_1@ 因为第一种方法是通过不断实例化一个子窗体实现的,不做判断的话触发一次就会增加
@H_301_1@
@H_301_1@一个。判断方法自便,这里找到了要少敏师姐的经验:
@H_301_1@
@H_301_1@http://www.jb51.cc/article/p-tqyxqmrd-qr.html
@H_301_1@
@H_301_1@ 而且还有一点,当子窗体边界超出父窗体时,父窗体会自动出现滚动条
@H_301_1@
@H_301_1@
@H_301_1@
@H_301_1@
@H_301_1@ 当移动滚动条后所有子窗体会发生移动,而父窗体控件因为有固定坐标不会发生移动。
@H_301_1@
@H_301_1@(通过第二种方法获得的子窗体也不会动),很难受。
@H_301_1@
@H_301_1@
@H_301_1@
@H_301_1@