用戶控件和Windows窗體在Visual Studio - C#之間有什麼區別?用戶控件與Windows窗體
回答
非常簡單的說:
用戶控件進行自定義,可重用的組件的方式。用戶控件可以包含其他控件,但必須由表單託管。
Windows窗體是控件的容器,包括用戶控件。雖然它包含許多與用戶控件類似的屬性,但主要目的是託管控件。
窗體窗體是用戶控件的容器。
所以是一個用戶控件! – 2010-02-19 20:34:25
你如何將一個表單放入用戶控件中? – Fredou 2010-02-19 20:35:10
你不能,但你肯定可以把用戶控件放在用戶控件中。 – 2010-02-19 20:35:43
他們有一個lot的共同點,它們都來自ContainerControl。然而,UserControl被設計爲一個子窗口,它需要被放置在一個容器中。表單被設計成沒有父母的頂級窗口。
實際上,你可以通過它的頂層屬性設置爲false變成一個窗體轉換爲子窗口:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
var child = new Form2();
child.TopLevel = false;
child.Location = new Point(10, 5);
child.Size = new Size(100, 100);
child.BackColor = Color.Yellow;
child.FormBorderStyle = FormBorderStyle.None;
child.Visible = true;
this.Controls.Add(child);
}
}
但是你真的應該避免這麼做,國際海事組織。 :) – 2010-02-20 01:57:42
與Control類的成本相比,您將使用不必要的,非常小的花生,尤其是本地窗口。微軟不會公開TopLevel屬性會很容易。該功能僅僅是模糊的,使用它就好了。 – 2016-08-02 10:08:19
我想我是從代碼清晰度和構圖的角度來講的。當然,你可以做到這一點,當然,這是支持的,但我認爲我的觀點是不把這個好例子當作設計模式:) – 2016-08-02 12:10:29
最大的區別是form.show給出了不同的窗口,而用戶控件可是沒有功能,就如同雨後春筍般冒出來沒有家長。兩個控件中的剩餘事物都是相同的,如從Scrollablecontrol派生的beind。
- 1. Windows窗體:用戶控件和事件
- 2. Windows窗體用戶控件問題
- 3. Windows窗體 - 自定義用戶控件
- 4. Windows窗體控件
- 5. Windows窗體 - 從窗體傳遞值到用戶控件
- 6. WPF用戶控件和Windows窗體用戶控件在Windows窗體應用程序
- 7. 用戶控制單擊 - Windows窗體
- 8. Windows窗體拖動控件
- 9. 關於Windows的Load事件窗體用戶控件
- 10. 將事件添加到Windows窗體中的用戶控件
- 11. Windows窗體應用程序中的用戶控件
- 12. 使用Windows窗體設計器添加用戶控件
- 13. WPF應用程序中的Windows窗體用戶控件
- 14. 在Windows窗體控件上使用RectVisible
- 15. Windows窗體:使用像容器控件一樣的用戶控件
- 16. 在asp.net網頁中託管Windows窗體用戶控件
- 17. 在Windows窗體用戶控件中嵌入XNA遊戲
- 18. 在Windows窗體中添加用戶控件(WPF)到面板c#
- 19. 錯誤託管在WPF Windows窗體用戶控件時
- 20. 在Windows窗體中承載WPF用戶控件
- 21. Windows窗體中WPF用戶控件的雙向DataBinding
- 22. 將用戶控件添加到Windows窗體c時出錯#
- 23. 錯誤「無法創建組件‘控件名稱’」當拖動Windows窗體用戶控件到窗體
- 24. CakePHP窗體與TwitterBoostrap(控件控件行)
- 25. Nhibernate與Windows窗體
- 26. 訪問沒有窗體實例的VBA用戶窗體控件
- 27. 將控件與Windows窗體設計器中窗體中心對齊
- 28. C#鎖定一個Windows窗體控件
- 29. 如何使Windows窗體控件只讀?
- 30. 如何轉移windows窗體控件?
用戶控件是否可以託管(包含)其他用戶控件? – 2012-04-30 13:54:59
@RobertNiestroj是的,他們可以。 – LxL 2014-01-02 17:43:23