2013-03-08 58 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文件中,您可以从不同的项目中引用该文件。