本文的要寫的是如何將窗體(form)新增到panel中。
為什麼要這樣呢?
1)如果用tab控制項,整個窗體的控制項太多,不易於我們程式設計;
2)可以更靈活的控制窗體的布局。
我想你一定看過這樣的配製資訊窗體吧(迅雷的配置頁面)。
在你的專案開發中,是否也希望做出這種效果呢?
應該如何設定呢?
單擊窗體的左邊的按鈕,窗體右邊的內容會根據單擊的按鈕變化.
開始是想到的設定思路很簡單,主窗體(如上圖),右邊放置乙個panel控制項.
然後根據單擊的按鈕將子窗體顯示在panel控制項上.
在按鈕的單擊事件中加入下面的**:
private void button1_click(object sender, eventargs e)
執行程式
顯示「不能將頂級控制項新增到乙個控制項上」出現「不能將頂級控制項新增到乙個控制項上」錯誤怎麼處理?
在**中加入
child.toplevel = false;
ok.
新問題又出現了.我們不希望子窗體的標題和邊筐也顯示在父窗體中,再新增如下**.
child.formborderstyle = formborderstyle.none;
現在的感覺是不是舒服多了.
但是還隱藏著乙個新問題.怎樣動態設定子窗體的size、location等呢?
我希望在調整父窗體大小時,panel1 中子窗體的大小也跟隨動態自動調整 .
需要加入下面的事件
private void panel1_resize(object sender, system.eventargs e)
catch(system.exception er)
}
編譯無錯,執行時(error: 未將物件引用設定到物件的例項)
但連續點了4個一樣的錯誤提示確認後,程式卻可以正常執行,並且form1調整窗體大小form2也可以隨之響應了。
此計不行,又生一計.
我們可以把子窗體當成乙個控制項,設定dock屬性不就行了嗎?
趕快測試一下:
private void button1_click(object sender, eventargs e)
ok
本人文筆不好,多多包含.
C 在Panel中嵌入子窗體
關閉嵌入的其他窗體 foreach control item in this.splitcontainer.panel2.controls 開啟新窗體 frmaddproduct newfrm new frmaddproduct form newfrm new form newfrm.topleve...
delphi 在DLL中新增窗體
方案一 在dll工程中新建乙個form窗體.在窗體中加入如下 1.首先需要再 implementation 之前宣告下以下函式.1 procedure23 begin46 7end 8 910procedure showform stdcall 1112 begin 1315 16mainform....
delphi 在DLL中新增窗體
方案一 在dll工程中新建乙個form窗體.在窗體中加入如下 1.首先需要再 implementation 之前宣告下以下函式.1 procedure23 begin46 7end 8 910procedure showform stdcall 1112 begin 1315 16mainform....