演练:演示可视化继承1
利用可视继承,可以看到基窗体上的控件并添加新控件。在本演练中,将创建一个基窗体并将其编译成类库。然后将此类库导入另一个项目中,并创建一个从该基窗体继承的新窗体。通过此演练,您将学会如何执行以下任务:
-
创建包含基窗体的类库项目。
-
添加具有基窗体派生类可修改的属性的按钮。
-
添加不能由基窗体的继承者来修改的按钮。
-
创建一个包含从 BaseForm 继承的窗体的项目。
最后,本演练将演示继承的窗体上私有控件和受保护控件之间的差异。
注意 |
---|
显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您现用的设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置。 |
第一步是创建基窗体。
创建包含基窗体的类库项目
-
从“文件”菜单中依次选择“新建”和“项目”,打开“新建项目”对话框。
-
创建一个名为 BaseFormLibrary 的基于 Windows 的应用程序。有关详细信息,请参见如何:创建 Windows 应用程序项目。
-
若要创建类库(而不是标准基于 Windows 的应用程序),请右键单击“解决方案资源管理器”中的“BaseFormLibrary”项目节点并选择“属性”。
-
在项目的属性中,将输出类型从“Windows 应用程序”更改为“类库”,然后单击“确定”。
-
从“文件”菜单中选择“全部保存”,将项目和文件保存到默认位置。
随后的两个过程会将按钮添加到基窗体中。若要演示可视继承,请通过设置按钮的 Modifiers 属性授予它们不同的访问级别。
添加基窗体的继承者可修改的按钮
-
在“工具箱”的“Windows 窗体”选项卡上双击“按钮”,将一个按钮添加到窗体中。使用鼠标将按钮定位,并调整其大小。
-
在“属性”窗口中,设置该按钮的下列属性:
-
将 Text 属性设置为 Say Hello。
-
将 (Name) 属性设置为 btnProtected。
-
将 Modifiers 属性设置为 Protected。这样,从 Form1 继承的窗体就可以修改 btnProtected 的属性。
-
-
双击 Say Hello 按钮,为 Click 事件添加事件处理程序。
-
将以下代码行添加到事件处理程序中:
Visual BasicMessageBox.Show("Hello, World!")
C#MessageBox.Show("Hello, World!");
J#MessageBox.Show("Hello, World!");
添加不能由基窗体的继承者修改的按钮
-
单击“代码编辑器”上方的“Form1.vb [Design]”、“Form1.cs [Design]”或“Form1.jsl [Design]”选项卡切换到设计视图,或者按 Shift+F7 切换。
-
添加第二个按钮并如下设置其属性:
-
将 Text 属性设置为 Say Goodbye。
-
将 (Name) 属性设置为 btnPrivate。
-
将 Modifiers 属性设置为 Private。这样,从 Form1 继承的窗体就无法修改 btnPrivate 的属性。
-
-
双击 Say Goodbye 按钮,为 Click 事件添加事件处理程序。将以下代码行放入事件过程中:
Visual BasicMessageBox.Show ("Goodbye!")
C#MessageBox.Show ("Goodbye!");
J#MessageBox.Show ("Goodbye!");
-
从“生成”菜单中选择“生成 BaseForm 库”,以生成该类库。
类库一旦生成,就可以新建一个从刚创建的窗体继承的项目。
创建包含从基窗体继承的窗体的项目
-
从“文件”菜单中依次选择“添加项目”和“新建项目”,打开“新建项目”对话框。
-
创建一个名为 InheritanceTest 的基于 Windows 的应用程序。有关详细信息,请参见如何:创建 Windows 应用程序项目。
添加继承的窗体
-
右键单击“InheritanceTest”项目,然后依次选择“添加”和“添加继承的窗体”。
-
在“添加新项”对话框中,验证已选中“继承的窗体”,然后单击“打开”。
-
在“继承选择器”对话框中,从“BaseFormLibrary”项目中选择“Form1”作为要从其中继承的窗体,然后单击“确定”。
这将在 InheritanceTest 项目中创建一个从 BaseFormLibrary 中的窗体派生的窗体。
-
通过双击继承窗体,在 Windows 窗体设计器中打开它(如果它尚未打开)。
在 Windows 窗体设计器中,继承的按钮的上角带有一个符号 (),指示它们是继承的控件。
-
选择 Say Hello 按钮并观察大小调整柄。由于此按钮受到保护,继承者可以移动它,调整其大小,更改其标题和进行其他修改。
-
选择私有的 Say Goodbye 按钮,请注意它没有大小调整柄。另外,在“属性”窗口中,此按钮的属性将变灰,指示它们不能进行修改。最后,将鼠标指针移动到此按钮上,此时将出现工具提示,指示控件的继承方式。
-
如果使用的是 Visual C#:
-
在“InheritanceTest”项目中右键单击“Form1”,并在快捷菜单上选择“删除”命令。
-
向 Form2 添加下面的代码,放到 protected override void Dispose( bool disposing ) 行的前面。此添加的作用是使 Form2 成为启动对象。
C#static void Main () { Application.Run (new Form2()); }
- 或 -
如果使用的是 Visual J#,则按 F7 切换到“代码”视图。向继承窗体 (Form2) 添加如下方法。这是应用程序 InheritanceTest 的入口点。
// The main entry point for the application. /** @attribute System.STAThreadAttribute() */ public static void main(String[] args) { Application.Run(new Form2()); }
-
-
右键单击“解决方案资源管理器”中的“InheritanceTest”项目并选择“设为启动项目”。
-
右键单击“解决方案资源管理器”中的“InheritanceTest”项目,然后选择“属性”。在“InheritanceTest 属性页”对话框中,将“启动对象”设置为继承的窗体(很可能是“Form2”)。
-
按 F5 运行应用程序,观察继承窗体的行为。