2013-03-08 39 views
1

使用WindowsForm的C#中UserControl和CustomControl有什麼區別?用戶控件vs C#中的自定義控件#

+0

謝謝...,你可以給我詳細..., – 2013-03-08 13:27:45

+1

[平原和簡單](http://programmers.stackexchange.com/questions/102300/is-there-any-difference-between-custom - 控制和用戶控制在網) – DHN 2013-03-08 13:30:10

+3

http://stackoverflow.com/questions/1322451/what-is-the-difference-between-user-control-custom-control-and-component - 有很多更多詳細信息 – 2013-03-08 13:35:00

回答

3

有Windows應用程序和Web應用程序的自定義和用戶控件。 Windows應用程序控件具有.cs擴展名。

從一般意義上講,用戶控件更容易創建。您可以將現有的控件(如文本框,標籤等)拖到窗體上。自定義控件通常更難(耗時)創建,但提供更大的靈活性,可自定義性和集成。

簡而言之的主要區別是這樣的:

用戶控制由現有控制。由於這個事實,它有時也被稱爲複合控制。典型的例子是登錄表單。這種形式和所有的邏輯都包含在這個「可重用」的用戶控件中。

自定義控件是您創建的控件。在Windows窗體中,這意味着覆蓋OnPaint方法,如上例所示。自定義控件沒有與用戶控件相同的設計時支持級別(即拖放現有控件等)。自定義控件通常被認爲是可重用的組件,可以添加到Visual Studio的工具箱中,因此它們通常不是特定於您的業務或代碼。

這裏是進入一些代碼示例,不同形式的鏈接:http://samples.gotdotnet.com/quickstart/winforms/doc/WinFormsCreatingControls.aspx

+0

「自定義控件不具有可視界面。」這個陳述是否準確?我認爲CustomControl中的「自定義」意味着你(開發人員)正在繪製控件的視覺方面(例如設置邊界,客戶區域,形狀等)。我認爲在一個CustomControl中,你花了更多的時間參與OnPaint方法等。 – 2013-03-08 13:39:33

+0

-1,你說的是ASP.Net,OP詢問winforms。 – ken2k 2013-03-08 13:48:27

+0

@ ken2k - 道歉,我已經更新了我的答案以覆蓋Windows窗體。 – 2013-03-08 13:53:30

2

您可能希望在一組,如果你想使用用戶控件把多項控制。也就是說,創建一組控件。當你想在你的項目的不同部分使用同一個控制組時,這是完成的。

當您想要擴展現有控件時,您可能想要使用CustomControl。該控件被編譯在一個DLL文件中,您可以從不同的項目中引用該文件。