UserControl与C#中的CustomControl

时间:2013-03-08 13:23:34

标签: c# winforms user-controls custom-controls

使用Windows窗体在C#中用户控件和自定义控件有什么区别?

2 个答案:

答案 0 :(得分:4)

Windows应用程序和Web应用程序都有自定义和用户控件。 Windows应用程序控件具有.cs扩展名。

在一般意义上,用户控件更容易创建。您可以将现有控件(如文本框,标签等)拖到窗体上。自定义控件通常更难(耗时)创建,但提供更大的灵活性,可定制性和集成。

简而言之,主要区别在于:

用户控件由现有控件组成。由于这个事实,它有时也被称为复合控制。一个典型的例子是登录表单。表单和所有逻辑都包含在这个“可重用”的用户控件中。

自定义控件是您创建的控件。在Windows窗体中,这意味着覆盖OnPaint方法,如上例所示。自定义控件与用户控件没有相同级别的设计时支持(即拖放现有控件等)。自定义控件通常被认为是可重复使用的组件,可以添加到visual studio的工具箱中,因此它们通常不是特定于您的业务或代码。

以下链接通过一些代码示例进入不同的表单:http://samples.gotdotnet.com/quickstart/winforms/doc/WinFormsCreatingControls.aspx

答案 1 :(得分:3)

如果要对组中的多个控件进行分组,可能需要使用UserControl。也就是说,创建一组控件。当你想在项目的不同部分使用相同的控制组时,这是完成的。

如果要扩展现有控件,可能需要使用CustomControl。控件在DLL文件中编译,您可以从不同的项目中引用它。