《第9部分菜单工具栏与状态栏.ppt》由会员分享,可在线阅读,更多相关《第9部分菜单工具栏与状态栏.ppt(38页珍藏版)》请在三一办公上搜索。
1、第9章 菜单、工具栏与状态栏,Visual C#2005程序设计,第9章 菜单、工具栏与状态栏9.1 菜单9.1.1 主菜单的设计1.创建菜单的方法在C#应用程序中,可使用MenuStrip控件创建应用程序的菜单。该控件在工具箱中的图标为,双击该图标可将其添加到当前应用程序中,由于控件本身在程序运行时并不直接显示,故与其他同类控件一样出现在窗体设计器窗口的下方窗格中。,2.编辑、删除菜单成员如果要移动一个菜单项,可单击该菜单项并用鼠标将其它拖到一个新位置即可。如果要删除一个菜单项,可用鼠标右键单击要删除的菜单项,在弹出的快捷菜单中执行“删除”命令。如果要编辑一个菜单项,可以直接单击需要修改的地
2、方,进入编辑状态,而后添加、删除或修改文字即可。3.实现菜单功能可以通过编写菜单项单击(Click)事件代码来实现希望的菜单功能。,4.设置下拉菜单的属性(1)禁用菜单项(2)隐藏菜单项(3)添加已选择标记(4)指定快捷键 设置菜单标题项的快捷键 设置菜单项的快捷键(5)添加分隔条,9.1.2 快捷菜单 快捷菜单,也称为弹出式菜单、右键菜单或上下文菜单。在C#中,可使用ContextMenuStrip控件为对象创建快捷菜单,该控件在工具箱中的图标为。,1.创建快捷菜单首先从工具箱中选取ContextMenuStrip控件并添加到窗体上,即为该窗体创建了快捷菜单。单击窗体设计器下方窗格中的Con
3、textMenuStrip控件,窗体上显示提示文本“请在此处输入”。单击此文本,然后键入所需菜单项的名称。若要添加另一个菜单项,可单击菜单设计器内的另一个“请在此处输入”区域。单击当前菜单项右侧的区域,以添加子菜单项。或单击当前菜单项下方的区域,以添加另一个菜单项。,2.快捷菜单应用实例【例9-2】为【例9-1】程序添加一个快捷菜单,程序启动后的界面如图9-9所示,用户在窗体上单击右键,弹出图示的快捷菜单。执行其中的颜色命令可产生与主菜单中相应命令等效的结果。某命令执行时菜单项左侧带有“”标记。再次执行该菜单命令取消相应的颜色及菜单项左侧的“”标记,将颜色恢复为背景色。执行快捷菜单中的“红”命
4、令,然后再次打开快捷菜单后,如图9-10所示。,程序运行结果 更换颜色并标记选择,快捷菜单“默认”的Click事件代码为:private void cMenuD_Click(object sender,EventArgs e)if(cMenuD.Checked)/调用相应的主菜单项Click事件代码 menuD_Click(sender,e);/其他快捷菜单项标记为未选择 cMenuR.Checked=cMenuG.Checked=cMenuB.Checked=false;,/选择标记为“”(单选)cMenuD.CheckState=CheckState.Indeterminate;else/
5、如果是未选择状态,则显示为默认颜色 cMenuD.CheckState=CheckState.Indeterminate;menuD_Click(sender,e);,9.2 工具栏 9.2.1 工具栏控件(ToolStrip)工具栏控件ToolStrip在工具箱中显示为图标,双击该图标可将控件添加到窗体上,工具栏缺省地出现在窗体的上方。1.ToolStrip控件的常用属性选择ToolStrip控件后(如本例的toolStrip1)可在属性窗口中设置其属性。,2.工具栏按钮集合编辑器(Items)在ToolStrip控件的属性窗口中单击Items属性右侧的按钮,“项集合编辑器”窗口。ToolS
6、tripButton常用的属性 DisplayStyle:按钮标题的显示方式 Image:设置工具按钮上的显示图标 Text:指定显示在按钮上的文本内容 ToolTipText:指定按钮的提示内容,在工具栏中添加按钮最快捷的方法是直接在设计视图中,通过工具栏中添加按钮控件的下拉列表选择要添加的按钮类型。工具栏按钮一旦添加至工具栏,则单击某一按钮,即可以在属性窗口设置其属性,而不必通过工具按钮集合编辑器。3.ToolStripButton控件的常用方法和事件工具栏按钮控件最常用的事件是Click事件,Visual Studio 2005中可以单独设计工具栏按钮的Click事件。,9.2.2 工具
7、栏控件应用实例【例9-3】为【例9-2】应用程序设计一个工具栏,其中包括用于设置窗口透明度和设置窗口大小的4个工具按钮,其中,窗口透明度按钮为下拉菜单形式,要求在窗口透明度按钮和窗口大小按钮之间添加一个分隔线。当用户单击工具栏中的某一按钮时,可以执行菜单中的相应命令。,程序运行结果,按钮的“不透明”菜单项的Click事件代码为:private void btnOO_Click(object sender,EventArgs e)menuOO_Click(sender,e);/调用主菜单的“不透明”菜单项的事件代码按钮的“半透明”菜单项的Click事件代码为:private void btnOM
8、id_Click(object sender,EventArgs e)menuOMid_Click(sender,e);,【大】按钮的Click事件代码为:private void btnMax_Click(object sender,EventArgs e)menuMax_Click(sender,e);【中】按钮的Click事件代码为:private void btnMid_Click(object sender,EventArgs e)menuMid_Click(sender,e);【小】按钮的Click事件代码为:private void btnSmall_Click(object s
9、ender,EventArgs e)menuSmall_Click(sender,e);,9.3 状态栏 9.3.1 状态栏控件(StatusStrip)在C#中可以使用状态栏控件StatusStrip在窗体上创建状态栏,该控件在工具箱中的图标为。状态栏可以由若干个ToolStripStatus(面板)对象组成,显示为状态栏中一个个小窗格,每个ToolStripStatus中可以显示一种状态信息。,1.StatusStrip控件的常用属性状态栏主要的属性是:Items属性,用于添加面板;Text属性,设置状态栏的显示内容。但是如果为状态栏添加了面板,则其Text属性即失去意义。2.添加Tool
10、StripStatus(面板)在StatusStrip控件属性窗口中单击Items属性右侧的按钮,打开项集合编辑器,其用法与前面介绍的工具栏的类似。,最常用的面板是StatusLabel(标签面板),ToolStripStatus常用属性AutoSize:决定是否自动根据内容调整大小BorderSides:指定面板边框的显示BorderStyle:设定面板边框的样式平面,Flat(缺省)平面边框,Sunken三维凹陷边框,Raised三维凸起边框,9.3.2 状态栏控件应用实例【例9-4】为【例9-3】添加一个包含有3个面板的状态栏,程序运行时显示图9-21所示的界面。3个面板分别显示窗口大小
11、、窗口透明度和窗口颜色。,使用面板输出信息的代码放在主菜单相应菜单项的Click事件中。“800 x600像素”菜单项的Click事件代码为private void menuMax_Click(object sender,EventArgs e)this.Width=800;this.Height=600;/新增向面板输出窗口大小信息功能的语句 lblS.Text=800 x600像素;,9.4 对话框 9.4.1 模式对话框和非模式对话框对话框可以分为模式对话框和非模式对话框两种。模式对话框是指用户只能在当前的对话框窗体进行操作,在该窗体关闭之前不能切换到程序的其他窗体。非模式对话框是指当前
12、所操作的对话框窗体可以与程序的其他窗体切换。,9.4.2 消息框1 仅定义消息内容格式如下:MessageBox.Sow(字符串类型的消息内容)2 指定消息和标题的消息框格式如下:MessageBox.Sow(字符串类型的消息内容,字符类型的标题),3 显示具有指定消息、标题和按钮的消息框格式如下:MessageBox.Sow(字符串类型的消息内容,字符类型的标题,消息框按钮类型)4 添加图标的消息框。格式如下:MessageBox.Sow(字符串类型的消息内容,字符类型的标题,消息框类型按钮类型,图标类型),9.4.3 字体对话框在C#中,可以使用FontDialog(字体设置对话框)控件创
13、建字体设置对话框,该控件在工具箱中的图标为,双击该图标即可将其添加到当前程序中。1.FontDialog(字体设置对话框)的常用属性FontDialog(字体设置对话框)最常用的两个属性是Font(字体)属性与Color(颜色)属性。,例如,假设对话框的对象名称为fDialog,要将名称为label1的标签控件的字体与颜色信息传递给FontDialog(字体设置对话框),可以使用如下代码:/传递字体信息fDialog1.Font=label1.Font;/传递颜色信息fDialog1.Color=label1.ForeColor;需要说明的是,要确保FontDialog(字体设置对话框)中具有
14、颜色选项,必须使对话框控件的ShowColor属性为true。同样,ShowApply属性决定FontDialog(字体设置对话框)是否显示【应用】按钮。,2.FontDialog(字体设置对话框)的ShowDialog方法FontDialog(字体设置对话框)的ShowDialog方法,用于显示对话框。该方法的调用常常被放在条件语句的条件表达式中。例如,假设对话框的对象名称为fDialog,如果用户单击了对话框的【确定】按钮,则将对话框的设置应用于标签控件label1,代码如下:/如果用户单击了【确定】按钮if(fDialog1.ShowDialog()=DialogResult.OK)/应
15、用对话框设置的字体 label1.Font=fDialog1.Font;/应用对话设置的颜色 label1.ForeColor=fDialog1.Color;,3.FontDialog(字体设置对话框)的Apply事件在FontDialog(字体设置对话框)中有一个【应用】按钮,如果单击该按钮将激发对话框的Apply事件,通过该事件中的代码设计,可以在不退出对话框的情况下将设置应用于程序。要使该按钮显示,必须确保对话框控件的ShowApply属性为true。,9.4.4 打开文件对话框在C#中,可以使用OpenFileDialog(打开文件对话框)选择与打开文件,该控件在工具箱中的图标为。Fi
16、leNames属性:该属性用于保存对话框中选择的所有文件的文件名(含路径)。FileNames属性是一个字符串类型的数组,该属性是只读属性。MultiSelect属性:该属性用于决定是否能对文件进行多选。这是一个逻辑类型的属性,true表示可以在对话框中一次选择多个文件,false表示一次只允许选择一个文件。,Filter属性:该属性是一个文件筛选器,根据该属性值的设置,可以决定在对话框的“文件类型”下拉列表框中提示哪些类型的文件,在选择文件列表框中显示哪些类型的文件。假如有打开文件对话框对象dlg,仅允许打开jpg、bmp、gif文档,则设置Filter值的代码如下:Dlg.Filter=图
17、像文件|*.jpg;*.bmp;*.gif;/对话框中可选的文件类型,【例9-5】设计Windows应用程序,程序包含两个菜单标题“文件”与“字体”。“文件”菜单中包含“打开”与“退出”菜单项,“字体”菜单中包含“设置字体”菜单项。,在程序代码的开始处添加命名空间的引用,代码如下:using System.Diagnostics;/引用命名空间“打开”菜单项的Click事件代码为:private void menuO_Click(object sender,EventArgs e)/“打开”对话框中可选的文件类型 opnDlg.Filter=Word文档|*.doc|图像文件|*.jpg;*.
18、bmp;*.gif;opnDlg.Multiselect=false;/确保文件只能单选,if(opnDlg.ShowDialog()=DialogResult.OK)/如果单击对话框的【打开】按钮 txtFileInfo.Text=opnDlg.FileNames0;/输出文件路径与文件名 Process.Start(opnDlg.FileNames0);/打开对话框中选定的文件,“退出”菜单项的Click事件代码为:private void menuX_Click(object sender,EventArgs e)this.Close();,“设置字体”菜单项的Click事件代码为:pr
19、ivate void menuF_Click(object sender,EventArgs e)/将文本框的字体与颜色属性传递给对话框 fntDlg.Font=txtFileInfo.Font;fntDlg.Color=txtFileInfo.ForeColor;/如果单击对话框的【确定】按钮 if(fntDlg.ShowDialog()=DialogResult.OK)/将字体与颜色设置应用于文本框 txtFileInfo.Font=fntDlg.Font;txtFileInfo.ForeColor=fntDlg.Color;,“字体”对话框【应用】按钮的Click事件代码为:privat
20、e void fntDlg_Apply(object sender,EventArgs e)/将字体与颜色设置应用于文本框 txtFileInfo.Font=fntDlg.Font;txtFileInfo.ForeColor=fntDlg.Color;,9.4.6 自定义对话框在Windows编程过程中,往往出现要求显示信息量大或特定样式的对话框,需要自定义完成。在应用程序中添加自定义的对话框方法如下:添加Windows窗体。修改该窗体的属性和名称。修改窗体的FormBorderStyle属性为FixedDialog。设置Contral、MinimizeBox、MaximizeBox、ShowInIaskar的属性为False。添加按钮是实现对话框的按钮事项的功能。对话框中根据按钮的返回值的效果可以根据窗体的AcceptButton和CancelButton设置。,