MDI表單的最佳化—上

來源:互聯網
上載者:User

     對於剛剛接手的 機房收費系統。

     該系統,最外層是一個MDI表單。對於其他的操作,都在MDi子表單裡面進行。


           當看到這種表單的時候,我們毫不猶豫的就說,這個表單的主表單是一個MDI表單。其他的都是他的子表單。

          所以我們在做系統的時候,建立一個MDI表單。但是我們會發現,在MDI表單上不能添加 按鈕等其他控制項。所以我們需要一個容器控制項。大部分人都會想到的時pictureBox因為這是一個非常簡單,有代表的容器控制項。

           剛做完主表單的時候,沒有什麼錯。但是當你有MDI子表單form1的時候,你會發現,問題來了。不管你怎麼調整,子表單form1都看不到。

 

          下面舉一個小例子,可以解決以上問題。

          這是一個MDI表單,上面的是一個pictureBox控制項,當點擊按鈕的時候,彈出form1子表單。


當點擊按鈕的時候,你會看到下面這種情況。


      子表單form1和picture在同一個層級。所以看不到子表單。

      下面給出一種解決辦法:

使用API函數----,將form1設定成為pictureBox的子表單。這樣,form1就可以顯示在pictureBox前面了。

Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As LongPrivate Sub Command1_Click()    SetParent Form1.hWnd, MDIForm1.hWnd    Form1.ShowEnd Sub

     使用api函數,就可以把子表單form1放置在pictureBox之上顯示出來了。




     但是form1顯示的不完全,這時就需要設定子表單的長寬了

Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As LongPrivate Sub Command1_Click()    SetParent Form1.hWnd, MDIForm1.hWnd    Form1.Show    Form1.Width = Picture1.ScaleWidth    Form1.Height = Picture1.ScaleHeightEnd Sub


雖然問題解決了,但是視圖的美觀卻被打破了。

MDI子表單最大化後的標題列在MDI表單的功能表列下方。而且,MDI子表單最小化後,就找不到了。

 

為了實現更友好的主介面,我們在下一期講解。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.