2012-02-08 58 views
0

我有一個主窗體,我想通過按下一些按鈕來動態更改它的內容。 比方說,我有一個按鈕「新用戶」和「登錄」,如果我按新用戶,我不想新的表單+顯示,我希望新用戶的所有標籤和按鈕顯示在右側主要形式。如果我按登錄,主窗體內容更改爲一些標籤和文本框? 這僅僅是一個例子。 我現在所能做的只是通過.Show()命令創建新表單並將其顯示給用戶。如何更改表單內容?

+0

請澄清哪個VB版本(VB6,VB.NET)並相應標記 - 標記'basic'不會給你許多好的答案。 – Filburt 2012-02-08 12:11:22

回答

2

比方說,你有客戶,產品和供應商「窗口」。您不想與它們分離窗口,因此您可以將所有控件分組到groupboxes中,並根據用戶操作使其可見/不可見。這會起作用,但會導致代碼可讀性和可維護性的問題:您爲窗口內的許多控件編寫了大量代碼,畢竟只有一個類。

所以你可以這樣做:創建一個名爲usrCustomer或myCustomer的用戶控件或者其他東西,並粘貼到與Customer有關的所有控件:groupbox,labels,combos,everything。然後,您可以決定是否要在設計時將這個超級控件添加到主窗體中,或者如果您希望在每次需要時在運行時創建它的新實例。如果將來你必須修改某些東西,你將會去一個單獨的類(ctlCostumer),而不是在怪物主表單類中挖掘。

CAVEAT:如果這些控件在它們之間共享信息(如果產品超級控件需要知道客戶超級控件中的某些內容)並將該信息公開給公共屬性等,則必須小心。

+0

非常感謝,我的朋友。 – Devfly 2012-02-08 13:23:56

0

從設計的角度來看,製作新的表格會好很多。 或者,您可以創建一些新的控件並隱藏/顯示控件。 (或使可見光屬性爲真/假)

標籤具有文本屬性,您可以更改運行時間。

+0

這不能回答我的問題。我有很多按鈕文本框和標籤。如果我顯示/隱藏它們將會很糟糕。我敢肯定,有很多方案都有。 – Devfly 2012-02-08 12:13:39

+0

創建不同的父面板。在面板上放置不同的控制組。顯示/隱藏面板? – 2012-02-08 15:00:19

+0

從可維護性/可讀性。將控件分成邏輯集。每一組都可以指示你的程序的不同狀態.. – 2012-02-08 15:02:40

0

如果您不想顯示新表單,可以將與用戶相關的所有控件(標籤,文本框....)包裝在容器中,例如simple Panel,然後隱藏/顯示面板取決於你的表單狀態。

+0

是的,我想到了。會嘗試! – Devfly 2012-02-08 12:49:03