使用Windows窗体在C#中用户控件和自定义控件有什么区别?
答案 0 :(得分:4)
Windows应用程序和Web应用程序都有自定义和用户控件。 Windows应用程序控件具有.cs扩展名。
在一般意义上,用户控件更容易创建。您可以将现有控件(如文本框,标签等)拖到窗体上。自定义控件通常更难(耗时)创建,但提供更大的灵活性,可定制性和集成。
简而言之,主要区别在于:
用户控件由现有控件组成。由于这个事实,它有时也被称为复合控制。一个典型的例子是登录表单。表单和所有逻辑都包含在这个“可重用”的用户控件中。
自定义控件是您创建的控件。在Windows窗体中,这意味着覆盖OnPaint方法,如上例所示。自定义控件与用户控件没有相同级别的设计时支持(即拖放现有控件等)。自定义控件通常被认为是可重复使用的组件,可以添加到visual studio的工具箱中,因此它们通常不是特定于您的业务或代码。
以下链接通过一些代码示例进入不同的表单:http://samples.gotdotnet.com/quickstart/winforms/doc/WinFormsCreatingControls.aspx
答案 1 :(得分:3)
如果要对组中的多个控件进行分组,可能需要使用UserControl。也就是说,创建一组控件。当你想在项目的不同部分使用相同的控制组时,这是完成的。
如果要扩展现有控件,可能需要使用CustomControl。控件在DLL文件中编译,您可以从不同的项目中引用它。