2.2 主窗体设计
在Windows窗体应用程序中,主窗体通常包括主菜单、工具栏、状态栏等。下面我们就逐一介绍如何使用它们。
2.2.1 主菜单(MenuStrip)
一个项目都包含许多功能,我们一般按照功能对其进行分组,并以菜单的形式展示给用户操作。
使用MenuStrip控件可以轻松创建类似Microsoft Office中那样的菜单,并且我们可以通过添加快捷键、图像和分隔条等来增强菜单的可用性和可读性。
(1)添加菜单。如图2-6所示,切换到frmMain的设计页面,在“工具箱”的“菜单和工具栏”面板中将“MenuStrip”控件拖放到窗体上。
此控件将在窗体的顶部创建一个默认菜单。
图2-6 添加MenuStrip控件
(2)适当调整窗体的大小。根据本系统的功能,先大致设置菜单如图2-7所示。
(3)设计菜单图标。如图2-8所示,选中“系部信息”菜单,在属性窗口中找到“Image”属性,单击按钮。
图2-7 设计菜单
图2-8 设计菜单的Image属性
(4)如图2-9所示,在弹出的“选择资源”对话框中,选中“本地资源”单选按钮,单击“导入”按钮。
如果选中“项目资源文件”单选按钮,可将资源文件复制到项目的资源文件中,以便于以后操作。
(5)如图2-10所示,选择我们需要的资源文件。本书配套的“资源文件”文件夹中有一些图片可供读者选择,当然读者也可自行选择自己喜欢的图片。这里选择“资源文件”文件夹中的“Department”文件,单击“打开”按钮。
图2-9 选择资源
图2-10 选择资源文件
(6)回到“选择资源”对话框,单击“确定”按钮。
(7)类似地,给各菜单栏指定资源文件,最后完成的菜单如图2-11所示。
(8)现在,读者已完成应用程序的设计阶段,此时可以开始添加一些代码以提供程序的功能。
程序必须具有针对按钮和每个菜单选项的事件处理程序。事件处理程序是用户与控件交互时执行的方法。Visual Studio自动为用户创建空的事件处理程序。
下面我们来为MenuStrip选项添加事件处理程序。
双击“系统”下的“退出”子菜单,系统将自动产生该菜单项的Click事件代码框架。如下所示为完成代码。
private void退出ToolStripMenuItem_Click(object sender, EventArgs e) { Close(); }
图2-11 指定Image后完成的菜单
2.2.2 工具栏(ToolStrip)
使用ToolStrip控件可以创建用于自定义的常用工具栏,让这些工具栏支持高级用户界面和布局功能,如带文本和图像的按钮、下拉按钮等。
(1)添加工具栏。如图2-12所示,在“工具箱”的“菜单和工具栏”面板中将“ToolStrip”控件拖放到窗体中。
图2-12 添加ToolStrip控件
(2)如图2-13所示,单击“ToolStrip”中的下拉按钮,选择“Button”选项。
图2-13 为ToolStrip添加Button
(3)设置刚刚添加的“Button”的Image属性,和菜单设置操作类似。这里设置该Button的功能为“报名”,所以选择一个和菜单中“报名”一样的图片。
通常在工具栏中放置一些系统常用的功能作为快捷方式。
(4)单击“ToolStrip”中的下拉按钮,选择“Separator”选项,放置一个分隔符。
(5)单击“ToolStrip”中的下拉按钮,选择“Button”选项。将该工具按钮设计成和菜单中的“退出”完成一样的功能。完成后的工具栏如图2-14所示。
图2-14 完成后的工具栏
(6)为工具栏按钮指定功能。这里我们将工具栏上的“退出”按钮指定为和“退出”菜单一样的功能,具体操作如下。
① 如图2-15所示,右击工具栏上“退出”按钮,选择“属性”命令。
图2-15 选择“属性”命令
② 如图2-16所示,注意图中鼠标的位置,在属性窗口单击按钮,切换到“事件”选项卡。
图2-16 查看事件
③ 如图2-17所示,在Click事件中单击下拉按钮,选择为“退出”工具栏按钮的Click事件。通常情况下,为不同的控件执行相同的方法时采用这种操作方式,比如这里“退出”菜单项和工具栏的“退出”按钮执行的就是同样的功能。
图2-17 为完成相同功能的工具栏按钮和菜单指定同一事件
2.2.3 状态栏(StatusStrip)
StatusStrip控件通常用来显示正在窗体上查看的对象的相关信息、对象在应用程序中的操作相关的上下文信息。
通常,StatusStrip控件由ToolStripStatusLabel对象组成,每个这样的对象都可以显示文本、图标或同时显示这两者。
StatusStrip还可以包含ToolStripDropDownButton、ToolStripSplitButton和ToolStripProgressBar控件。
(1)如图2-18所示,在“工具箱”的“菜单和工具栏”面板中将“StatusStrip”控件拖放到窗体中。
图2-18 添加StatusStrip控件
(2)如图2-19所示,单击“StatusStrip”中的下拉按钮,选择“StatusLabel”选项。
添加的ToolStripStatusLabel默认名称为“toolStripStatusLabel1”。
图2-19 为StatusStrip添加StatusLabel
(3)设置刚刚添加的“toolStripStatusLabel1”属性如下。
Text:项目设计:曾建华Email:237021692@qq.com
IsLink:True
(4)单击“StatusStrip”中的下拉按钮,选择“StatusLabel”选项,再添加一个ToolStripStatusLabel,设置属性如下。
Name:LoginInfo
Text:此处以后将显示登录信息
Spring:True
TextAlign:MiddleRight
ForeColor:Blue
完成后的状态栏如图2-20所示。
图2-20 完成后的状态栏
2.2.4 多文档界面(MDI)应用程序主窗体设计
MDI应用程序能同时显示多个文档,每个文档显示在各自的窗口中。
(1)确保选中frmMain,在窗体的空白位置单击即可。设置frmMain属性如下。
IsMdiContainer:True(设置该窗体为多文档界面子窗体的容器)
(2)继续设置frmMain窗体的如下属性。
Text:学生选课系统
WindowState:Maximized(设置窗体运行时最大化)
BackgroundImage:(读者可自行选择合适的背景图片,这里选择“资源文件”文件夹中的“主窗体背景”,注意设计该属性时看不到图片,运行时可查看效果)
BackgroundImageLayout:Stretch(设置背景图片为拉伸)
(3)运行测试,效果如图2-21所示。单击“退出”菜单或工具栏上的“退出”按钮都可退出系统。
图2-21 主界面完成后的运行效果
好,基本主框架我们搭好了,后面的章节将一步一步地实现每一项菜单的具体功能。