
C#应用程序设计 教学课件 ppt 作者 韦鹏程 张伟 朱盈贤 第8章windows 相关控件.ppt
56页C# 程序设计,第8章 Windows相关控件,目 录,第8章 Windows相关控件,本章介绍了构成Windows窗体风格中常见的菜单、工具栏、状态栏与对话框控件等8.1 菜单,菜单是Windwos应用程序中最常用的控件之一,它可以以分组的形式将命令或操作组织在一起8.1 菜单,8.1.1 下拉菜单 8.1.2 快捷菜单,8.1.1 下拉菜单,下拉菜单位于应用程序窗口的顶部的菜单栏中,菜单栏中的标题叫做菜单标题或主菜单项,单击菜单标题将打开下拉菜单,下拉菜单中的标题叫做菜单项或菜单命令 可以使用MenuStrip控件创建下拉菜单8.1.1 下拉菜单,任务8.1 菜单演示 创建一个窗体,添加菜单栏,其中包括“窗体大小”和“背景颜色”两个菜单标题项各菜单标题项下包含的菜单项如图8-1所示要求执行菜单命令可以实现菜单文本所标示的功能要求为“背景颜色”菜单项中的菜单命令指定如图8-1中所示的快捷键8.1.1 下拉菜单,任务8.1 任务实施 (一)创建项目和窗体 (1)创建一个“Windows应用程序”项目 (2)使用MenuStrip控件创建菜单 在工具箱中双击MenuStrip控件图标,可将该控件添加到应用程序中,如图8-2所示。
由于该控件本身在运行时并不直接显示,故出现在窗体设计器窗口的下方窗格中8.1.1 下拉菜单,任务8.1 任务实施 (一)创建项目和窗体,8.1.1 下拉菜单,任务8.1 任务实施 (一)创建项目和窗体 (2)使用MenuStrip控件创建菜单 双击窗体菜单栏中的“请在此处键入”,在其中输入第一个菜单的名字“窗体大小”后,会在该项的右侧和下方分别出现进一步的提示,右侧为下一个标题菜单,下方为第一个标题菜单的第一个菜单项,其右侧是该菜单的子菜单项,如图8-3所示根据提示,可以很方便地完成菜单标题、菜单项和子菜单项的设置8.1.1 下拉菜单,任务8.1 任务实施 (一)创建项目和窗体,8.1.1 下拉菜单,任务8.1 任务实施 (一)创建项目和窗体 (3)指定分隔线 如果将某个菜单项的Text属性设置为“-”,则该菜单项就会显示为一个分隔条可以在“透明度”菜单项的下方,输入一个“-”,然后选中“透明度”菜单项后按住鼠标左键,将其拖动到分隔线的下方,如图8-4所示8.1.1 下拉菜单,任务8.1 任务实施 (一)创建项目和窗体 (4)菜单项属性的设置 在菜单设计器中依次输入各菜单标题及菜单项的文本,其属性设置如表8-1所示。
8.1.1 下拉菜单,任务8.1 任务实施 (一)创建项目和窗体 (4)菜单项属性的设置,8.1.1 下拉菜单,任务8.1 任务实施 (二)代码的编写 (1)在Form1类定义的类体中声明颜色(Color)类型字段,代码如下: Color bgColor; (2)窗体Load事件,代码如下: private void Form1_Load(object sender, EventArgs e) { bgColor = this.BackColor; //保存默认颜色 },8.1.1 下拉菜单,任务8.1 任务实施 (二)代码的编写 (3)各菜单项的Click单击事件代码为: “大窗口”菜单项: private void menuMax_Click(object sender, EventArgs e) { this.Width = 800; this.Height = 600; } “小窗口”菜单项: private void menuMin_Click(object sender, EventArgs e) { this.Width = 400; this.Height = 300; },8.1.1 下拉菜单,任务8.1 任务实施 (二)代码的编写 (3)各菜单项的Click单击事件代码为: “不透明”菜单项: private void menuOO_Click(object sender, EventArgs e) { this.Opacity = 1; //设置不透明度为100% } “半透明”菜单项: private void menuOH_Click(object sender, EventArgs e) { this.Opacity = 0.5; //设置不透明度为50% },8.1.1 下拉菜单,任务8.1 任务实施 (二)代码的编写 (3)各菜单项的Click单击事件代码为: “默认”菜单项: private void menuD_Click(object sender, EventArgs e) { this.BackColor = bgColor; //设置背景色为默认颜色 } “红”菜单项: private void menuR_Click(object sender, EventArgs e) { this.BackColor = Color.Red; //设置背景色为红色 },8.1.1 下拉菜单,任务8.1 任务实施 (二)代码的编写 (3)各菜单项的Click单击事件代码为: “蓝”菜单项: private void menuB_Click(object sender, EventArgs e) { this.BackColor = Color.Blue; //设置背景色为蓝色 },8.1.1 下拉菜单,任务8.1 任务实施 (三)程序的运行 按下F5键运行该应用程序,选择“窗体大小”标题菜单下的“大窗口”和“小窗口”菜单项,观察窗体大小的变化;选择“透明度”菜单项中的“不透明”和“半透明”子菜单项,对比窗体的显示效果。
选择“背景颜色”标题菜单下的“红”、“蓝”、“默认”菜单项,观察窗体背景颜色单击各个快捷组合键,观察命令的执行情况 分别按下Alt + W和Alt + B组合键,打开对应的下拉菜单,运行结果如图8-1所示8.1.1 下拉菜单,任务8.1 支撑知识 (一)编辑、删除菜单成员 在设计视图中,如果要移动一个菜单项,可单击该菜单项并用鼠标左键将其拖动到一个新位置即可如果要删除一个菜单项,选中以后,单击右键,在弹出的快捷菜单中执行“删除”命令,或者选中菜单项后,按键盘上的Delete键如果要编辑一个菜单项,可以在选中菜单项后,再次左键单击该菜单项的名字,即可进入编辑状态,也可以选中菜单项后,在“属性”窗口中,设置菜单项的属性8.1.1 下拉菜单,任务8.1 支撑知识 (二)设置下拉菜单的属性 有些菜单的属性在菜单设计中是比较重要的,如下: (1)禁用菜单项 (2)隐藏菜单项 (3)添加已选择标记 (4)指定快捷键,8.1.2 快捷菜单,快捷菜单又称为弹出式菜单,右键菜单或上下文菜单用户单击鼠标右键后,会根据单击右键的位置,动态地调整菜单项的显示位置 可以使用ContextMenuStrip控件制作快捷菜单。
8.1.2 快捷菜单,任务8.2 扩展菜单演示 为任务8.1中创建的菜单窗体,添加快捷菜单,程序启动运行后的结果如图8-5所示用户在窗体上单击右键,弹出图示快捷菜单,选择其中的选项,可以改变背景的颜色,所选菜单项上打上“·”标记,再次选择该项,恢复默认颜色8.1.2 快捷菜单,任务8.2 任务实施 (一)创建项目和窗体 (1)打开任务8.1中的项目“test81”,向窗体中添加一个ContextMenuStrip控件,设置快捷菜单中命令文本如图8-6所示8.1.2 快捷菜单,任务8.2 任务实施 (一)创建项目和窗体 (2)设置属性 各菜单项的属性设置如表8-2所示8.1.2 快捷菜单,任务8.2 任务实施 (一)创建项目和窗体 (3)设置窗体与快捷菜单的关联 选中窗体,在其“属性”窗口中,将“ContextMenuStrip”属性值设为新添加的快捷菜单控件“contextMenuStrip1”8.1.2 快捷菜单,任务8.2 任务实施 (二)代码的编写 (1)快捷菜单中“默认”菜单项的Click单击事件代码 (2)快捷菜单中“红”菜单项的Click单击事件代码 (3)快捷菜单中“蓝”菜单项的Click单击事件代码,8.1.2 快捷菜单,任务8.2 任务实施 (二)代码的编写 (4)修改主菜单中的“背景颜色”内的对应菜单项,让选择某个主菜单中的菜单项后,其他菜单项在快捷菜单中不再是选中状态。
修改“背景颜色”菜单列表中的“默认”菜单项的Click事件代码如下: private void menuD_Click(object sender, EventArgs e) { this.BackColor = bgColor; //设置背景色为默认颜色 cMenuD.CheckState = CheckState.Indeterminate; //快捷菜单中的“默认”标记为单选 //快捷菜单中的其他菜单项标记为未选 cMenuR.Checked = cMenuB.Checked = false; },8.1.2 快捷菜单,任务8.2 任务实施 (二)代码的编写 (5)修改“背景颜色”菜单列表中的“红”菜单项的Click事件代码如下: private void menuR_Click(object sender, EventArgs e) { this.BackColor = Color.Red; //设置背景色为红色 cMenuR.CheckState = CheckState.Indeterminate; cMenuD.Checked = cMenuB.Checked = false; },8.1.2 快捷菜单,任务8.2 任务实施 (二)代码的编写 (6)修改“背景颜色”菜单列表中的“蓝”菜单项的Click事件代码如下: private void menuR_Click(object sender, EventArgs e) { this.BackColor = Color.Red; //设置背景色为红色 cMenuB.CheckState = CheckState.Indeterminate; cMenuD.Checked = cMenuR.Checked = false; },8.1.2 快捷菜单,任务8.2 任务实施 (三)程序的运行 按下F5键运行该应用程序,在窗体中单击鼠标右键,弹出快捷菜单,选择其中的菜单项,能够达到与主菜单中选择一样的效果,在主菜单中选择了某菜单项后,右键菜单中的“单选按钮”也能体现出选择。
选择了右键菜单中的“红”后,再次单击“红”会返回到“默认”状态,运行结果如图8-6所示8.1.2 快捷菜单,任务8.2 支撑知识 (一)快捷菜单的创建与关联 快捷菜单的创建方法与下拉菜单类似,都是在显示提示文本的“请在此处输入”处,进行菜单项的输入菜单项的编辑与删除也与下拉菜单一样 快捷菜单添加以后,如果不与窗体发生“关联”,在程序运行时,单击鼠标右键是看不到快捷菜单的必须在设计视图中,选中窗体后,将“属性”窗口中窗体的“ContextMenuStrip”属性设置为要显示的快捷菜单对象,才能在该窗体上单击鼠标右键时,弹出对应的快捷菜单8.2 工具箱,工具箱使用户不必在一级一级菜单中去搜寻需要的命令,给用户带来了比菜单更为快速的操作方法通常将最常用的菜单命令做成工具按钮,集中在工具栏中 可以使用ToolStrip控件创建工具栏8.2 工具箱,任务8.3 添加工具栏 为任务8.2中的窗体,添加一个工具栏,其中包括用于设置窗口透明度和设置窗口大小的3个工具按钮其中,窗口透明度按钮为下拉菜单形式,窗口大小按钮为按钮形式,在两组按钮之间添加一个分隔线当用户单击工具栏中的某一按钮时,可以执行菜单中的相应命令,程序运行结果如图8-7所示。
8.2 工具箱,任务8.3 任务实施 (一)创建项目和窗体 (1)打开任务8.2修改后的项目“test81”,向窗体中添加一个工具栏控件ToolStrip1,点开。
