我試圖在用戶選擇不同的標籤頁時在3個標籤頁之間移動3個控件。他們是一個工具欄控件,一個richtextbox控件和一個組合框控件。在標籤頁之間移動控件
富文本框和組合框將根據選定的標籤頁分配一些屬性的新值,但工具條應該是相同的,但它的方法(這是一種典型的字體樣式處理工具條)應該影響richtextbox,僅在當前的頁面上可見。
現在,因爲更改組合框的顯示值也意味着當前tabpage上的richtextbox將爲其文本屬性分配一個新值,我不想爲每個場合創建3個組合框和50個richtextboxes 。我想創建它們中的一組,並在使用引發事件之前將它們的值保存在某種類型的字符串集合中,即更改組合框顯示的項目或更改Tabpage。
沒有做這個,我讀這 http://www.vbforums.com/showthread.php?478602-2005-Move-controls-From-One-Tab-Page-To-Another這表明爲其創造機會,這似乎是荒謬的,我控制之前...
我現在的情況是,我在tabpage1通過設計師與顯示控制然後我改變標籤時試圖像這樣
Private Sub TabPage_Enter(sender As Object, e As EventArgs) Handles TabPage1.Enter, TabPage2.Enter, TabPage3.Enter
Select Case DirectCast(sender, TabPage).Name
Case "Tabpage1"
TabPage1.Controls.Add(RichTextBox1)
TabPage1.Controls.Add(ToolStrip1)
TabPage1.Controls.Add(ComboBox1)
Case "TabPage2"
TabPage2.Controls.Add(RichTextBox1)
TabPage2.Controls.Add(ToolStrip1)
TabPage2.Controls.Add(ComboBox1)
Case "TabPage3"
TabPage3.Controls.Add(RichTextBox1)
TabPage3.Controls.Add(ToolStrip1)
TabPage3.Controls.Add(ComboBox1)
End Select
End Sub
現在,控件將出現在tabpage2和tabpage3但tabpage1保持爲空。我試圖在表單加載事件中做這件事
TabPage1.Controls.Add(RichTextBox1)
TabPage1.Controls.Add(ToolStrip1)
TabPage1.Controls.Add(ComboBox1)
但仍然tabpage1保持爲空時切換回其視圖。我不知道我正在嘗試的是我想要做什麼,但是我明白,對於這種方法,我不應該使用設計器,而只是在代碼處理大小和位置時自己創建控件。如果有這樣做的「正確」方式,請提供建議,主要是爲了保持代碼簡潔和整齊。 TIA。
ps.在寫這篇文章時,我意識到我可以在每個tabpage的設計器中只創建每個控件的三個,然後用我想到的字符串集合方式處理組合框更改。看起來足夠明智,但我仍然想知道這一點,因此我仍然在問這個問題。
在您的case語句中,「Tabpage1」應該有一個大寫的「P」,以匹配您的TabPage1名稱嗎? –
這是很好的發現,我正在尋找一個錯字,但因爲我關注的排序數字1,2,3我沒有注意到:D – kokotas
所以顯然現在控件出現在第一個選項卡上(該死的我檢查了3在發佈這篇文章之前,我沒有發現錯字):P但是我想知道當我在tabpage上添加控件時,每次輸入事件觸發時會發生什麼?這是做到這一點的方式嗎?我想我會發現,而我正在與我的代碼進展。但是,如果有更好的方法,請將其添加爲答案,或者回答一個關於持續添加控件會發生什麼的信息。 TIA – kokotas