演练:使用 Visual C# 从 Windows 窗体控件继承



演练:使用 Visual C# 从 Windows 窗体控件继承

 

使用 Visual C# 2005 可以通过继承创建功能强大的自定义控件。  通过继承,可以创建不仅保留了标准 Windows 窗体控件的所有内在功能,而且还包含自定义功能的控件。  在本演练中,将创建一个名为 ValueButton 的简单继承控件。  此按钮将继承标准 Windows 窗体 Button 控件的功能,并将公开一个名为 ButtonValue 的自定义属性。  

System_CAPS_note注意

显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您现用的设置或版本。  若要更改设置,请在“工具”菜单上选择“导入和导出设置”  有关更多信息,请参见 Customizing Development Settings in Visual Studio  

创建新项目时,应指定其名称以便设置根命名空间、程序集名称和项目名称,并确保默认组件位于正确的命名空间中。

创建 ValueButtonLib 控件库和 ValueButton 控件

  1. “文件”菜单上,指向“新建”,然后单击“项目”打开“新建项目”对话框。

  2. 在 Visual C# 项目列表中,选择“Windows 窗体控件库”项目模板,然后在“名称”框中键入 ValueButtonLib

    默认情况下,项目名称 ValueButtonLib 也被分配到根命名空间中。  根命名空间用于限定程序集中的组件名。  例如,如果两个程序集提供名为 ValueButton 的组件,则可以使用 ValueButtonLib.ValueButton 指定 ValueButton 组件。  有关更多信息,请参见命名空间(C# 编程指南)  

  3. “解决方案资源管理器”中右击“UserControl1.cs”,再从快捷菜单中选择“重命名”  将文件名更改为 ValueButton.cs  系统询问是否重命名对代码元素“UserControl1”的所有引用时,单击“是”按钮。  

  4. “解决方案资源管理器”中右击“ValueButton.cs”,再选择“查看代码”

  5. 找到 class 语句行 public partial class ValueButton,并将此控件继承的类型从 UserControl 更改为 Button  这允许您所继承的控件继承 Button 控件的所有功能。  

  6. “解决方案资源管理器”中打开“ValueButton.cs”节点,以显示设计器生成的代码文件“ValueButton.Designer.cs”  “代码编辑器”中打开此文件。  

  7. 找到 InitializeComponent 方法并删除分配 AutoScaleMode 属性的行。   Button 控件中没有此属性。  

  8. “文件”菜单中,选择“全部保存”以保存项目。

    System_CAPS_note注意

    可视化设计器不再可用。  由于 Button 控件自行绘制,因此您无法在设计器中修改其外观。  除非在代码中进行修改,否则它的可视化表示形式将与它所继承的类(即 Button)的可视化表示形式完全一样。  但您仍然可以向设计器图面添加不含 UI 元素的组件。  

继承的 Windows 窗体控件的可能用途之一是创建与标准 Windows 窗体控件的外观相同、但公开自定义属性的控件。  在本节中,将向控件中添加名为 ButtonValue 的属性。  

添加 Value 属性

  1. “解决方案资源管理器”中,右击“ValueButton.cs”,然后从快捷菜单中单击“查看代码”

  2. 找到 class 语句。  紧接在 { 后面键入下列代码:  

    [C#]

    // Creates the private variable that will store the value of your 
    // property.
    private int varValue;
    // Declares the property.
    public int ButtonValue
    {
       // Sets the method for retrieving the value of your property.
       get
       {
          return varValue;
       }
       // Sets the method for setting the value of your property.
       set
       {
          varValue = value;
       }
    }
    

    此代码设置存储和检索 ButtonValue 属性的方法。   get 语句将返回的值设置为存储在私有变量 varValue 中的值,而 set 语句通过使用 value 关键字设置该私有变量的值。  

  3. “文件”菜单中,选择“全部保存”以保存项目。

控件不是独立的项目,它们必须寄宿在某个容器中。  为了测试控件,必须提供一个测试项目,以使控件在其中运行。  您还必须通过生成(编译)该控件使测试项目能够访问它。  在本节中,将生成控件并在 Windows 窗体中测试它。  

生成控件

  1. “生成”菜单上,单击“生成解决方案”

    生成应该成功,没有任何编译器错误或警告。

创建测试项目

  1. “文件”菜单上,指向“添加”,然后单击“新建项目”打开“添加新项目”对话框。

  2. “Visual C#”节点下选择“Windows”节点,再单击“Windows 窗体应用程序”

  3. “名称”框中键入 Test

  4. “解决方案资源管理器”中,右击测试项目的“引用”节点,然后从快捷菜单上选择“添加引用”以显示“添加引用”对话框。

  5. 单击标记为“项目”的选项卡。   “项目名称”下将列出 ValueButtonLib 项目。  双击该项目以将引用添加到测试项目。  

  6. “解决方案资源管理器”中,右击“测试”并选择“生成”

将控件添加到窗体

  1. “解决方案资源管理器”中,右击“Form1.cs”,然后从快捷菜单中选择“视图设计器”

  2. “工具箱”中单击“ValueButtonLib 组件”  双击“ValueButton”  

    窗体上出现一个“ValueButton”

  3. 右击“ValueButton”并从快捷菜单中选择“属性”

  4. “属性”窗口中检查该控件的属性。  注意,除增加了一个 ButtonValue 属性外,它们与标准按钮公开的属性相同。  

  5. ButtonValue 属性设置为 5

  6. “工具箱”“所有 Windows 窗体”选项卡中,双击“标签”,将 Label 控件添加到窗体中。

  7. 将标签重新定位到窗体的中央。

  8. 双击 valueButton1

    将响应 valueButton1_Click 事件而打开“代码编辑器”

  9. 插入下面的代码行。

    [C#]

    label1.Text = valueButton1.ButtonValue.ToString();
    
  10. “解决方案资源管理器”中,右击“测试”,然后从快捷菜单中选择“设为启动项目”

  11. “调试”菜单中选择“启动调试”

    Form1 出现。

  12. 单击 valueButton1

    label1 中显示数字“5”,说明继承控件的 ButtonValue 属性已经通过 valueButton1_Click 方法传递到 label1  这样,ValueButton 控件便继承了标准 Windows 窗体按钮的所有功能,但是公开了一个附加的自定义属性。  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值