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