2009-05-04 101 views
5

好我有一個使用卡口與嵌入其中,像這樣形成大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); 
    } 

我然後調用下面窗體的Load事件父窗體 - >

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

這是給我HERE響應我剛纔的問題。

隨着我在這方面取得進展,我不斷感受到多層嵌入式表單是一種等待發生的災難,並且用戶控件一直彈出。任何人都可以提供一些關於使用用戶控件vs嵌入窗體的具體建議嗎?

看到我以前的問題,爲這一個靈感。 HERE

此外,我的當前嵌入式表格佈局看起來像在行動中的屏幕截圖可以找到HERE

謝謝

回答

2

我會使用一個UserControl,它認爲那裏更簡單,你可以看到設計器中發生了什麼(如果你想要的話),Form有很多你永遠不需要的東西,如果你只是將它用作容器中的視圖。

比較這對你的方法:

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

我的觀點是,它可能不會太大的關係,你選擇哪個方向。我會選擇使用用戶控件,因爲它是更標準的方法,可以讓您在未來更加靈活。例如,如果您的客戶找到您並說他們希望將兩個標籤合併到一個標籤中,該怎麼辦?用戶控件將允許您將這兩個控件放到單個選項卡上,而無需將控件組合到一個表單中,然後在需求再次改變時在下個月將其更改回來。

你有一個龐大而複雜的應用程序,有許多件,據我所知,需要彼此溝通。我認爲你應該問自己的問題不是「表單或用戶控制?」。你應該問自己的問題是,「這個應用程序的架構是否合適?」。

我覺得一個,納入一個插件式架構而可能更適合你有許多移動部件的設計...或者你可以先看看微軟的模式與實踐複合應用程序塊(CAB

+0

有趣的是,將有可能爲你解釋一下你的「插件式」架構是什麼意思?你是指抽象形式是什麼,並且具有不同的可互換的UC來執行這些基本功能? – 2009-05-04 18:40:01