使用英语阅读

通过


如何:从现有 Windows 窗体控件继承

如果要扩展现有控件的功能,可以通过继承创建派生自现有控件的控件。 从现有控件继承时,将继承该控件的所有功能和视觉属性。 例如,如果要创建继承自 Button的控件,则新控件的外观和行为与标准 Button 控件完全相同。 然后,可以通过实现自定义方法和属性来扩展或修改新控件的功能。 在某些控件中,还可以通过重写继承控件的 OnPaint 方法来更改其可视外观。

创建继承的控件

  1. 在 Visual Studio 中创建新的“Windows 窗体应用程序”项目

  2. 在“项目”菜单中,选择 “添加新项”。

    此时将显示“添加新项”对话框。

  3. 在“添加新项”对话框中,双击“自定义控件”。

    新的自定义控件将添加到项目中。

  4. 如果你正在使用:

    • Visual Basic,请在“解决方案资源管理器”的顶部单击“显示所有文件”。 展开CustomControl1.vb,然后在代码编辑器中打开CustomControl1.Designer.vb。
    • C#,在代码编辑器中打开CustomControl1.cs。
  5. 找到从 Control 继承的类声明。

  6. 将基类更改为要从中继承的控件。

    例如,如果要从 Button继承,请将类声明更改为以下内容:

    Partial Class CustomControl1
        Inherits System.Windows.Forms.Button
    
    public partial class CustomControl1 : System.Windows.Forms.Button
    
  7. 如果使用 Visual Basic,请保存并关闭CustomControl1.Designer.vb。 在代码编辑器中打开CustomControl1.vb。

  8. 实现控件将纳入的任何自定义方法或属性。

  9. 如果想要修改控件的图形外观,请重写 OnPaint 方法。

    备注

    重写 OnPaint 将不允许你修改所有控件的外观。 由 Windows 完成所有绘制的控件(例如,TextBox)永远不会调用其 OnPaint 方法,因此永远不会使用自定义代码。 请参阅要修改的特定控件的帮助文档,以查看 OnPaint 方法是否可用。 要查看所有 Windows 窗体控件的列表,请参阅 Windows 窗体上使用的控件。 如果控件未将 OnPaint 作为成员方法列出,则不能通过重写此方法来更改其外观。 有关自定义绘制的详细信息,请参阅 自定义控件绘制和渲染

    Protected Overrides Sub OnPaint(ByVal e As _
       System.Windows.Forms.PaintEventArgs)
       MyBase.OnPaint(e)
       ' Insert code to do custom painting.
       ' If you want to completely change the appearance of your control,
       ' do not call MyBase.OnPaint(e).
    End Sub
    
    protected override void OnPaint(PaintEventArgs pe)
    {
       base.OnPaint(pe);
       // Insert code to do custom painting.
       // If you want to completely change the appearance of your control,
       // do not call base.OnPaint(pe).
    }
    
  10. 保存并测试控件。

另请参阅