簡體   English   中英

控件中的嵌入式窗體或用戶控件的窗體

[英]Embedded Form in a control or Form as User Control

好吧,我有一個大型CRUD應用程序,使用帶有嵌入在其中的表單的選項卡,如此 - >

public static void ShowFormInContainerControl(Control ctl, Form frm)
    {
        frm.TopLevel = false;
        frm.FormBorderStyle = FormBorderStyle.None;
        frm.Dock = DockStyle.Fill;
        frm.Visible = true;
        ctl.Controls.Add(frm);
    }

然后我在父表單的表單加載事件中調用以下 - >

 // Embedd the child form in the this Parent
        WinFormCustomHandling.ShowFormInContainerControl(pnlModuleHost, _frmWWCModuleHost);

這是我在這里回答我之前提出的問題。

隨着我的進步,我不斷得到這樣一種感覺,即多層嵌入式表格是等待發生的災難,用戶控件不斷彈出。 有人能為我提供一些關於使用用戶控件和嵌入表單的具體建議嗎?

請參閱我之前的問題,了解這個問題的靈感。 這里

此外,還可以在此處找到我當前嵌入的表單布局在行動中的屏幕截圖。

謝謝

我的觀點是,你選擇哪個方向可能無關緊要。 我會選擇使用用戶控件,因為它是更標准的方法,並且可以讓您在未來獲得更大的靈活性。 例如,如果您的客戶來找您並說他們希望將兩個標簽組合到一個標簽中,該怎么辦? 用戶控件允許您將這兩個控件放到一個選項卡上而不需要將控件組合成一個表單,然后在需求再次更改時將其更改回下個月。

你有一個龐大而復雜的應用程序,它有許多部分,據我所知,需要相互通信。 我認為您應該問自己的問題不是“表單或用戶控件?”。 你應該問自己的問題是,“這是這個應用程序的正確架構嗎?”。

我認為包含插件式架構的設計可能更適合您擁有的許多移動部件......或者您可以查看Microsoft的模式和實踐復合應用程序塊( CAB

我會使用UserControl,它認為只是更簡單,你可以看到設計師中發生了什么(如果你想),如果你只是想把它作為容器中的一個視圖使用它,那么你將永遠不需要它。

將此與您的方法進行比較:

public static void DockControl(this Control control, UserControl userControl)
            {
                userControl.Dock = DockStyle.Fill;
                control.Controls.Clear();
                control.Controls.Add(userControl);
            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM