C 在Panel中新增新的窗體 Form

2021-05-24 13:37:56 字數 1263 閱讀 1936

本文的要寫的是如何將窗體(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....