如何:从现有 Windows 窗体控件继承
更新:2007 年 11 月
如果要扩展现有控件的功能,可以通过继承创建一个由现有控件导出的控件。当从一个现有控件继承时,就继承了该控件的所有功能和可视属性。例如,如果您正在创建一个从 Button 继承的控件,则新控件的外观和操作方式与标准的 Button 控件完全一样。您然后还可通过实现自定义方法和属性,扩展或修改新控件的功能。在某些控件中,还可以通过重写继承控件的 OnPaint 方法更改其可视外观。
说明: |
---|
显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您的当前设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置。 |
创建继承控件
创建新的 Windows 项目。
此项目可为任何类型,如 Windows Application 项目或 Windows Control Library 项目。如果选择“Windows 控件库”,则可以使用所提供的空白控件并跳过步骤 2 和步骤 3。
从“项目”菜单选择“添加用户控件”。
即会出现“添加新项”对话框。
在“添加新项”对话框中双击“自定义控件”。
一个新的自定义控件被添加到项目中。
在“代码编辑器”中,定位到指定 Control 作为要继承的基类的代码行。将基类的名称更改为要继承的控件的名称。
例如,如果要从 Button 继承,则代码行应为:
Inherits System.Windows.Forms.Button
public class CustomControl1 : System.Windows.Forms.Button
public class CustomControl1 extends System.Windows.Forms.Button
实现将合并到控件中的任合自定义方法或属性。
如果要修改控件的图形外观,则重写 OnPaint 方法。
说明: 重写 OnPaint 将禁止修改所有控件的外观。那些由 Windows 完成其所有绘图的控件(例如 TextBox)从不调用它们的 OnPaint 方法,因此将永远不会使用自定义代码。请参见您要修改的特定控件的帮助文档,查看 OnPaint 方法是否可用。有关所有 Windows 窗体控件的列表,请参见 在 Windows 窗体上使用的控件。如果某个控件未将 OnPaint 作为成员方法列出,则您无法通过重写此方法改变其外观。有关自定义绘制的更多信息,请参见 自定义控件的绘制和呈现。
Protected Overrides Sub OnPaint(ByVal pe As _ System.Windows.Forms.PaintEventArgs) MyBase.OnPaint(pe) ' Insert code to do custom painting. If you want to completely ' change the appearance of your control, do not call ' MyBase.OnPaint(pe). End Sub
protected override void OnPaint(PaintEventArgs pe) { // Do not call base.OnPaint if you want to completely // control the appearance of the control. base.OnPaint(pe); // Insert code to do custom painting. }
protected void OnPaint(PaintEventArgs pe) { // Do not call base.OnPaint if you want to completely // control the appearance of the control. super.OnPaint(pe); // Insert code to do custom painting. }
保存并测试控件。
请参见
任务
有关 Visual Basic 中继承的事件处理程序的疑难解答