做过:演示可视继承

利用可视继承,可以看到基窗体上的控件并添加新控件。在本演练中,将创建一个基窗体并将其编译成类库。然后将此类库导入另一个项目中,并创建一个从该基窗体继承的新窗体。在演练期间,您将学会的操作如下:

  • 创建包含基窗体的类库项目。
  • 添加具有基窗体派生类可修改的属性的按钮。
  • 添加不能由基窗体的继承者来修改的按钮。
  • 创建一个包含从 BaseForm 继承的窗体的项目。

最后,本演练将演示继承窗体上私有和受保护控件之间的差异

方案步骤

第一步是创建基窗体。

创建包含基窗体的类库项目

  1. 从“文件”菜单中依次选择“新建”和“项目”,打开“新建项目”对话框。
  2. 创建一个名为 BaseFormLibrary 的 Windows 应用程序。有关详细信息,请参见创建 Windows 应用程序项目。
  3. 若要创建类库(而不是标准的 Windows 应用程序),请右击解决方案资源管理器中的“BaseFormLibrary”项目节点并选择“属性”。
  4. 在项目的属性中,将输出类型从“Windows 应用程序”更改为“类库”,然后单击“确定”。
  5. 从“文件”菜单中选择“全部保存”,将项目和文件保存到默认位置。

随后的两个过程会将按钮添加到基窗体中。若要演示可视继承,请通过设置按钮的 Modifiers 属性授予它们不同的访问级别。

添加基窗体的继承者可修改的按钮

  1. 在“工具箱”的“Windows 窗体”选项卡上双击“Button”,将一个按钮添加到窗体中。使用鼠标将按钮定位,并调整其大小。
  2. 在“属性”窗口中,设置该按钮的下列属性:
    • Text 属性设置为 Say Hello
    • (Name) 属性设置为 btnProtected
    • Modifiers 属性设置为 Protected。这样,从 Form1 继承的窗体就可以修改 btnProtected 的属性。
  3. 双击 Say Hello 按钮,为 Click 事件添加事件处理程序。
  4. 将以下代码行添加到事件处理程序中:
    ' Visual Basic
    MessageBox.Show("Hello, World!")
    
    // C#
    MessageBox.Show("Hello, World!");

添加不能由基窗体的继承者修改的按钮

  1. 单击代码编辑器之上的“Form1.vb [设计]”选项卡或按 SHIFT+F7,切换到设计视图。
  2. 添加第二个按钮并如下设置其属性:
    • Text 属性设置为 Say Goodbye
    • (Name) 属性设置为 btnPrivate
    • Modifiers 属性设置为 Private。这样,从 Form1 继承的窗体就无法修改 btnPrivate 的属性。
  3. 双击 Say Goodbye 按钮,为 Click 事件添加事件处理程序。将以下代码行放入事件过程中:
    ' Visual Basic
    MessageBox.Show ("Goodbye!")
    
    // C#
    MessageBox.Show ("Goodbye!");
  4. 从“生成”菜单中选择“生成解决方案”,以生成类库。

    类库一旦生成,就可以新建一个从刚创建的窗体继承的项目。

创建包含从基窗体继承的窗体的项目

  1. 从“文件”菜单中依次选择“添加项目”和“新建项目”,打开“新建项目”对话框。
  2. 创建一个名为 InheritanceTest 的 Windows 应用程序。有关详细信息,请参见创建 Windows 应用程序项目。

添加继承的窗体

  1. 右击 InheritanceTest 项目,然后依次选择“添加”和“添加继承的窗体”。
  2. 在“添加新项”对话框中,验证“继承的窗体”已选定,然后单击“打开”。
  3. 在“继承选择器”对话框中,从 BaseFormLibrary 项目中选择 Form1 作为要从其中继承的窗体,然后单击“确定”。

    这将在 InheritanceTest 项目中创建一个从 BaseFormLibrary 中的窗体派生的窗体。

  4. 通过双击打开 Windows 窗体设计器中的继承窗体(如果它尚未打开)。

    在 Windows 窗体设计器中,继承按钮的上角带有一个标志符号 (),指示它们是继承的。

  5. 选择 Say Hello 按钮并观察大小调整柄。由于此按钮受到保护,继承者可以移动它,调整其大小,更改其标题和进行其他修改。
  6. 选择私有的 Say Goodbye 按钮,请注意它没有大小调整柄。另外,在“属性”窗口中,此按钮的属性将变灰,指示它们不能进行修改。最后,将鼠标指针移动到此按钮上,此时将出现工具提示,指示控件的继承方式。
  7. 如果使用 Visual C#,请执行以下操作:
    1. InheritanceTest 项目中右击 Form1,并选择快捷菜单上的“删除”命令。
    2. 向 Form2 添加下面的代码,放到 protected override void Dispose( bool disposing ) 行的前面。此添加的作用是使 Form2 成为启动对象。
      // C#
      static void Main ()
      {
         Application.Run (new Form2());
      }
  8. 右击解决方案资源管理器中的 InheritanceTest 项目并选择“设为启动项目”。
  9. 右击解决方案资源管理器中的 InheritanceTest 项目并选择“属性”。在“InheritanceTest 属性页”对话框中,将“启动对象”设置为继承的窗体(很可能是 Form2)。
  10. 按 F5 键运行应用程序,观察继承窗体的行为。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值