1. 程式人生 > >【VB】MDI子窗體顯示(機房問題)

【VB】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 = 數字

具體數字自己設定。