第4章菜单、工具栏与状态栏ppt课件.ppt

上传人:小飞机 文档编号:2104782 上传时间:2023-01-10 格式:PPT 页数:108 大小:1,004KB
返回 下载 相关 举报
第4章菜单、工具栏与状态栏ppt课件.ppt_第1页
第1页 / 共108页
第4章菜单、工具栏与状态栏ppt课件.ppt_第2页
第2页 / 共108页
第4章菜单、工具栏与状态栏ppt课件.ppt_第3页
第3页 / 共108页
第4章菜单、工具栏与状态栏ppt课件.ppt_第4页
第4页 / 共108页
第4章菜单、工具栏与状态栏ppt课件.ppt_第5页
第5页 / 共108页
点击查看更多>>
资源描述

《第4章菜单、工具栏与状态栏ppt课件.ppt》由会员分享,可在线阅读,更多相关《第4章菜单、工具栏与状态栏ppt课件.ppt(108页珍藏版)》请在三一办公上搜索。

1、,软件技术专业剖析报告,软件教研室 李 萍2006年5月,第4章 菜单、工具栏、状态栏与对话框,讲课教师:周志德,Windows风格的界面由菜单、工具栏、状态栏等组成,如学生档案管理系统的主界面。,图4.1 学生档案管理系统主菜单界面,1.教学内容(1)菜单设计:下拉菜单设计与弹出式菜单设计(2)工具栏设计(3)状态栏设计(4)对话框使用(5)单文档编辑器设计与MDI多窗体程序设计,图4.2 单文档编辑器设计示例,2.教学方法(项目式教学法)(1)以单文档编辑器设计为教学案例介绍菜单、工具栏、状态栏与对话框的设计与使用方法。(2)以学生档案管理系统主界面设计为教学案例介绍MDI多窗体程序设计方

2、法。,【引例】设计一个简易文本编辑器的下拉式菜单,如图4.1所示,设计要求如表4.1所示。表4.1 简易文本编辑器的下拉式菜单结构,4.1 菜单设计,4.1 菜单设计,图4.3 下拉式菜单的组成,二级子菜单,菜单项,子菜单标题,子菜单提示符,主菜单项,分隔条,主菜单,一级子菜单,热键(Alt+V),快捷键(Ctrl+S),菜单分为下拉式菜单与弹出式菜单4.1.1下拉式菜单设计1.菜单组成 主菜单:主菜单项1、主菜单项2、主菜单项n下拉式菜单 一级子菜单 菜单项:表示一条命令或子菜单标题 二级子菜单 快捷键(Ctrl+字母):直接执行的命令键 子菜单 三级子菜单 分隔条(-):区分不同功能的菜单

3、项组 四级子菜单 子菜单提示符:表示有下级子菜单 五级子菜单 热键:“&”用菜单控件menuStrip设计下拉式菜单。,4.1 菜单设计,2.菜单控件menuStrip(1)作用:编辑制作下拉式菜单(2)添加菜单控件工具箱|菜单与工具栏|将menuStrip控件拖放到窗体内。(3)设置菜单位置(Dock属性)用Dock属性设置菜单6种位置:Top(顶部)、Bottom(底部)、Left(左边)、Right(右边)、Fill(填满)和None(不设置)。,4.1.1 下拉式菜单设计,(4)选择菜单类型 在新添加菜单项前,应选择菜单项类型。单击“请在此处键入”右侧的下拉按钮,打开设置菜单项类型的下

4、拉框,如图4.4所示。有三种类型:MenuItem(菜单项)ComboBox(下拉框)TextBox(文本框)选择MenuItem(菜单项),4.1.1 下拉式菜单设计,图4.4 选择菜单项类型,(5)输入菜单项文本(Text属性)单击“请在此处键入”框体,输入菜单项文本,如输入“文件”,如图4.5所示。也可用菜单项的Text属性输入菜单项文本。(6)输入分隔条 单击“请在此处键入”下拉按钮,选择Separator,可输入分隔条。如图4.6所示。,4.1.1 下拉式菜单设计,图4.5 输入菜单项文本,图4.6 输入分隔条,(7)设置热键(Text属性)Text属性:菜单项文本&在菜单项的Tex

5、t属性中输入:菜单项文本&,可设置热键。如在“文件”菜单项的Text属性中输入“文件(&F)”,则设置“文件”菜单项热键为F。程序执行时按Alt+F组合键可执行“文件”主菜单项命令。,4.1.1 下拉式菜单设计,(8)设置快捷键(ShortcutKeys属性)用ShortcutKeys属性可设置子菜单的快捷键。方法如下:单击子菜单(如“新建”),在属性对话框中单击ShortcutKeys下拉按钮,选择Ctrl+N为快捷键,如图4.7所示,则Ctrl+N成为“新建”子菜单的快捷键,当按Ctrl+N组合键时,系统将执行“新建”子菜单命令。,4.1.1 下拉式菜单设计,图4.7设置快捷键,(9)设置

6、菜单项名称Name先选择菜单项,然后在属性对话框中设置Name属性。如设置文件菜单项的Name:menu_File(10)设置菜单事件 双击子菜单项(如,新建),添加菜单的Click(单击)事件,如下所示。private void menu_New_Click(object sender,EventArgs e)MessageBox.Show(新建文件!);当用户点击“新建”菜单时将弹出“新建文件!”对话框。,4.1.1 下拉式菜单设计,(11)删除菜单项右击菜单项|删除,可删除菜单项。(12)插入菜单项右击菜单项|插入,可插入新的菜单项。(13)设置菜单项图标右击菜单项|设置图像|本地资源|

7、导入|选择图片文件,可设置菜单项图标。,4.1.1 下拉式菜单设计,(14)设置菜单项有效(Enabled)属性Enabled=true 菜单项有效,Enabled=false 菜单项无效(15)设置菜单项复选框(Checked)属性Checked=true 菜单项的复选框被选中,则该菜单项左边加上检查标记“”,表示该菜单项是一个被选项。,4.1.1 下拉式菜单设计,(16)项集合编辑器作用:添加、修改和删除菜单项。启动:单击菜单控件Items属性右边省略按钮。项集合编辑器界面(如图4.8所示)左侧上方下拉列表框可选择要添加菜单项的类型,左侧下方是已经添加的菜单项列表,右侧是选中菜单项的属性列

8、表。,4.1.1 下拉式菜单设计,图4.8 项集合编辑器界面,4.1.1 下拉式菜单设计,添加新菜单项单击“添加”按钮可以添加新菜单项。删除菜单项单击删除按钮可删除当前菜单项调整菜单项的位置选中菜单项后,单击列表右侧的上下箭头按钮,可调整菜单项之间的位置。,4.1.1 下拉式菜单设计,修改菜单项属性在右侧属性列表中可修改菜单项的属性。如修改Name、Text、ShortcutKeys等属性。单击菜单项的DropDownItems属性右边的省略按钮,将显示其对应下一级子菜单项的成员。如,单击“Menu_File”菜单项(文件)的DropDownItems属性右边的省略按钮,将显示文件菜单对应下一

9、级子菜单项的成员。如图4.9所示。此时可编辑文件子菜项的属性。,图4.9 文件菜单的子菜单成员,【例4.1】设计一个简易文本编辑器的下拉式菜单,如图4.1所示,设计要求如表4.1所示。,4.1.1 下拉式菜单设计,(1)新建解决方案ex4_1.sln 存放在d:C#ex4_1目录中。(2)新建项目ex4_1与窗体新建一个项目ex4_1,设置窗体属性Text:下拉式菜单设计示例Name:frm_Menu(3)添加菜单控件工具箱|菜单与工具栏|将menuStrip添加到窗体中。,4.1.1 下拉式菜单设计,(4)使用menuStrip控件建立菜单 创建主菜单项Text:输入“文件(&F)”(F键成

10、为热键)Name:Menu_File 创建子菜单项Text:新建Name:Menu_NewShortcutKeys:选择Ctrl+N,4.1.1 下拉式菜单设计,4.1.1 下拉式菜单设计,用同样方法建立编辑与视图菜单项及其子菜单。注意:菜单项的Name=Menu+菜单英文名。(5)建立菜单项事件过程为了使读者能感受到菜单项命令的执行效果,对“新建”、“打开”、“保存”与“退出”4个菜单项编写事件过程。,编写“新建”菜单项的事件过程在窗体设计器中,双击“新建”菜单项,进入代码编辑器,输入如下代码:private void Menu_New_Click(object sender,EventAr

11、gs e)MessageBox.Show(新建文件!);,4.1.1 下拉式菜单设计,编写“打开”菜单项的事件过程 private void Menu_Open_Click(object sender,EventArgs e)MessageBox.Show(打开文件!);编写“保存”菜单项的事件过程private void Menu_Save_Click(object sender,EventArgs e)MessageBox.Show(保存文件!);,4.1.1 下拉式菜单设计,编写“退出”菜单项的事件过程 private void Menu_Exit_Click(object sender

12、,EventArgs e)this.Close();,4.1.1 下拉式菜单设计,(7)编译和运行程序执行菜单命令:调试|启动调试或按F5 或 按启动快速按钮,即可启动执行菜单程序。用鼠标单击菜单项,屏幕上将显示对应输出信息。用热键Alt+F,可启动文件一级子菜单,用快捷键Ctrl+O可执行“打开”菜单项命令,屏幕显示“打开文件”信息,用快捷键Ctrl+E可执行“退出”菜单项命令,系统将关闭程序。,4.1.1 下拉式菜单设计,4.1.2 弹出式菜单设计(ContextMenuStrip控件)在Windows程序设计中广泛采用弹出式菜单,如在Word菜单或工具栏区单击鼠标右键,出现有关菜单栏、工

13、具栏等弹出式选择菜单。在文本编辑区单击鼠标右键会出现有关文本编辑方面的弹出式菜单。在C#开发环境中,用ContextMenuStrip控件设计弹出式菜单。,4.1.2 弹出式菜单设计,1.作用:设计弹出式菜单2.位置:工具箱|菜单和工具栏3.选择菜单类型MenuItem(菜单项)ComboBox(下拉框)TextBox(文本框)选择MenuItem(菜单项),4.1.2 弹出式菜单设计,4.输入菜单项文本(Text属性)单击“请在此处键入”框体,输入菜单项文本,如输入“剪切”,也可用菜单项的Text属性输入菜单项文本。5、选择关联控件编辑控件(如richTextBox)均有ContextMen

14、uStrip属性,在ContextMenuStrip属性栏中选择ContextMenuStrip控件,则右击编辑控件时,会出现ContextMenuStrip控件制作的弹出式菜单。,4.1.2 弹出式菜单设计,【例4.2】设计一个带有下拉式菜单、弹出式菜单的文本编辑器,其工作界面如图4.10所示。设计要求如下。在例4.1的窗体中添加一个RichTextBox控件作为图文编辑器,用弹出式菜单实现文本编辑器的“复制、剪切、粘贴、清除”功能,程序设计过程如下。图4.3弹出式菜单示例,4.1.2 弹出式菜单设计,图4.10弹出式菜单示例,(1)新建解决方案ex4_2.sln。(2)设置窗体属性Name

15、:frm_ContextMenu。Text:“下拉式菜单与弹出式菜单设计示例”。(3)将解决方案ex4_1.sln中的下拉菜单控件menuStrip1复制到frm_ContextMenu窗体中。(4)将ex4_1.sln中的所有事件处理程序复制到frm_ContextMenu窗体中。,4.1.2 弹出式菜单设计,(5)在窗体中添加ContextMenuStrip1控件在弹出式菜单中添加四个子菜单项:Text:剪切、复制、粘贴、清除。Name:cm_Cut、cm_Copy、cm_Paste、cm_Clear(6)添加RichTextBox控件工具箱|公共控件|将RichTextBox添加到窗体。

16、设置属性Name:rtxt_Text。ContextMenuStrip:ContextMenuStrip1 RichTextBox是一种图文编辑控件,具有类似于Word的文字编辑功能。,4.1.2 弹出式菜单设计,(7)编写剪切事件处理过程 private void Cut()/将剪切内容存入剪切板中,清除剪切内容 Clipboard.SetDataObject(rtxt_Text.SelectedText);rtxt_Text.SelectedText=String.Empty;private void cm_Cut_Click(object sender,EventArgs e)Cut()

17、;/单击弹出式菜单的剪切子菜单时调用Cut函数 private void Menu_Cut_Click(object sender,EventArgs e)Cut();/单击下拉菜单的剪切子菜单时调用Cut函数,4.1.2 弹出式菜单设计,(8)编写复制事件处理过程 private void Copy()/将选择的文本置于系统剪贴板中 Clipboard.SetDataObject(rtxt_Text.SelectedText);private void cm_Copy_Click(object sender,EventArgs e)Copy();/单击弹出式菜单的复制子菜单时调用Copy函数

18、 private void Menu_Copy_Click(object sender,EventArgs e)Copy();/单击下拉菜单的复制子菜单时调用Copy函数,4.1.2 弹出式菜单设计,(9)编写粘贴事件处理过程 private void Paste()/将剪切板中内容粘贴到编辑框中 IDataObject iData=Clipboard.GetDataObject();if(iData.GetDataPresent(DataFormats.Text)rtxt_Text.SelectedText=(String)iData.GetData(DataFormats.Text);pr

19、ivate void cm_Paste_Click(object sender,EventArgs e)Paste();/单击弹出式菜单的粘贴子菜单时调用Paste函数 private void Menu_Paste_Click(object sender,EventArgs e)Paste();/单击下拉菜单的粘贴子菜单时调用Paste函数,4.1.2 弹出式菜单设计,(10)编写清除事件处理过程 private void cm_Clear_Click(object sender,EventArgs e)rtxt_Text.Text=String.Empty;/清除图文编辑框内,4.1.2

20、弹出式菜单设计,(11)运行程序 运行程序后,用鼠标右击RichTextBox1控件,则出现弹出式菜单,可进行文本的剪切、复制、粘贴与清除操作。也可用下拉式菜单中的剪切、复制、粘贴子菜单实现上述操作。,4.1.2 弹出式菜单设计,C#使用ToolStrip控件设计工具栏,下面介绍ToolStrip控件的作用、位置、属性与使用方法。1.作用用于设计工具栏。2.添加工具栏工具箱|菜单与工具栏|ToolStrip控件。3.工具栏位置(Dock属性)用Dock属性:Top、Left、Right、Bottom、None可设置工具栏在窗体中的位置。,4.2工具栏设计,4.添加按钮(1)按钮类型:有8种按钮

21、类型,如图4.11所示。Button(工具栏按钮)Label(工具栏标签)SplitButton(分割按钮)DropDownButton(工具栏菜单按钮)Separator(工具栏分割线)ComboBox(工具栏下拉框)TextBox(工具栏文本框)ProgressBar(工具栏进度条),4.2工具栏设计,图4.11 工具栏的8种按钮,4.2工具栏设计,(2)添加按钮单击ToolStrip控件的下拉按钮(如图4.11),出现选择8种按钮类型菜单,从中选择所需按钮类型,如单击Button则工具栏中新增一个工具栏按钮,单击ComboBox则新增一个下拉组合框按钮。5.删除按钮右击按钮|选择删除,4

22、.2工具栏设计,6.按钮属性(1)Name(tbtn):按钮名称(2)Text:按钮文本(3)Image:按钮图标(4)DisplayStype:共有4种显示类型None:不显示Text:显示按钮文本Image:显示按钮图标ImageandText:显示按钮文本与图标,4.2工具栏设计,【例4.3】设计一个带有下拉式菜单、弹出式菜单与工具栏的文本编辑器,其工作界面如图4.8所示。设计要求如下:在例4.2的工程中增加工具栏,放置三个普通按钮,分别用于RichTextBox控件中被选文本的复制、剪切、粘贴功能。在工具栏上放置二个组合框ComboBox,为RichTextBox控件中文本选择字体与字

23、号,如图4.12所示。程序设计步骤如下。,4.2工具栏设计,图4.12 菜单与工具栏设计示例,4.2工具栏设计,(1)新建解决方案ex4_3.sln(2)设置窗体属性Name:frm_ToolStrip。Text:“菜单与工具栏设计示例”。(3)将ex4_2中的menuStrip1、ContextMenuStrip1、rtxt_Text控件复制到frm_ToolStrip窗体中。(4)将ex4_2中的所有事件处理程序复制到frm_ToolStrip窗体中。,4.2工具栏设计,(5)添加工具栏控件ToolStrip工具箱|公共控件|将ToolStrip添加到窗体(6)工具栏中添加按钮在ToolS

24、trip控件中添加三个普通按钮,设置属性:Name:tbtn_Cut tbtn_Copy tbtn_PasteText:剪切 复制 粘贴Image:Cut.bmp Copy.bmp Paste.bmpDisplayStype:ImageandText:,4.2工具栏设计,(7)编写单击工具栏按钮事件过程 private void tbtn_Cut_Click(object sender,EventArgs e)Cut();private void tbtn_Copy_Click(object sender,EventArgs e)Copy();private void tbtn_Paste_C

25、lick(object sender,EventArgs e)Paste();,4.2工具栏设计,(8)工具栏中添加两个存放字体与字号的ComboBox组合框 Name:tcbo_Font:存放字体 tcbo_Size:存放字号。tcbo_Font.Items:宋体黑体楷体tcbo_Size.Items:10,14,20,30,40,50,60,4.2工具栏设计,(9)编写单击tcbo_ Font组合列表框事件过程 private void SetFont()if(rtxt_Text.Text.Length!=0)rtxt_Text.SelectionFont=new Font(tcbo_Fo

26、nt.Text,rtxt_Text.SelectionFont.Size);private void tcbo_Font_SelectedIndexChanged(object sender,EventArgs e)SetFont();,4.2工具栏设计,(10)编写单击tcbo_ Size 组合框列表事件过程 private void SetSize()if(rtxt_Text.Text.Length!=0)int dSize=0;dSize=Convert.ToInt32(tcbo_Size.Text);rtxt_Text.SelectionFont=new Font(rtxt_Text.

27、Font.Name,dSize);private void tcbo_Size_SelectedIndexChanged(object sender,EventArgs e)SetSize();,4.2工具栏设计,(11)程序运行当程序运行后,先在rtxt_Text文本编辑框中输入“中华人民共和国”,选中“中华人民共和国”,用鼠标单击tcbo_ Font的下拉按钮选择“黑体”,单击tcbo_Size的下拉按钮选择40号字体,再单击“复制”按钮,打回车使光标移到下一行,再单击“粘贴”按钮,则40号楷体的“中华人民共和国”被复制到下一行,如图4.12所示。作业:(1)在自己笔记本电脑上完成例4-1

28、、例4-2、例4-3设计任务。(2)习题四 4.5,4.10,4.2工具栏设计,4.3 状态栏设计,状态栏是Windows风格程序界面的组成部分,用于Windows窗体下方状态信息的显示。如:光标位置、日期、时间等状态信息。状态栏是用状态栏控件StatusStrip控件设计的,下面介绍StatusStrip控件的作用、属性与应用举例。,1作用StatusStrip控件用于设计状态栏。状态栏由一组窗格组成,用于显示当前工作状态。2.添加状态栏工具箱|菜单与工具栏|StatusStrip控件。3.状态栏位置(Dock属性)用Dock属性:Top、Left、Right、Bottom、None可设置工

29、具栏在窗体中的位置。,4.3 状态栏设计,4.添加窗格(1)窗格类型有4种窗格类型(如图4.13所示):StatusLabel:状态栏标签ProgressBar:状态栏进度条DropDownButton:状态栏菜单按钮SplitButton:状态栏分隔按钮,4.3 状态栏设计,(2)添加窗格单击StatusStrip控件的下拉按钮(如图4.13),出现选择4种窗格类型菜单,从中选择所需窗格类型,如单击StatusLabel则状态栏中新增一个标签窗格,单击SplitButton则新增一个状态栏分隔按钮。5.删除窗格右击窗格|选择删除,4.3 状态栏设计,6.窗格属性(1)Name(slbl):窗

30、格名称(2)Text:窗格文本(3)Image:窗格图标(4)DisplayStype:共有4种显示类型None:不显示Text:显示窗格文本Image:显示窗格图标ImageandText:显示窗格文本与图标,4.3 状态栏设计,图4.13 状态栏的4各种窗格类型,4.3 状态栏设计,【例4.4】设计一个带有下拉式菜单、弹出式菜单、工具栏与状态栏的文本编辑器,其工作界面如图4.13所示。设计要求如下:在例4.3的工程中添加状态栏控件StatusStrip,状态栏共有2个标签,分别显示当前光标的坐标位置(x、y)、日期与时间,如图4.14所示。,4.3 状态栏设计,图4.14 菜单、工具栏与状

31、态栏设计示例,4.3 状态栏设计,(1)打开解决方案ex4_1.sln,新建项目ex4_4,将ex4_4设置为起动项目。(2)设置窗体属性Name:frm_Status。Text:“菜单、工具栏与状态栏设计示例”。(3)将项目ex4_3中的menuStrip1、ContextMenuStrip1、ToolStrip1、rtxtText控件复制到frm_Status窗体中。(4)将项目ex4_3中的所有事件处理程序复制到frm_Status窗体中。,4.3 状态栏设计,(5)添加状态栏控件StatusStrip工具箱|公共控件|将StatusStrip添加到窗体(6)状态栏中添加标签在Statu

32、sStrip控件中添加2个标签,设置属性:Name:slbl_XY slbl_DateText:X:0,Y:0 日期:时间:,4.3 状态栏设计,(7)窗体上添加时间控件Timer(在组件栏中)将Timer控件放置在窗体中。设置Interval属性为1000,即每隔1000ms=1s触发一次的Timer事件过程。Enabled=True。Timer事件过程代码 private void timer1_Tick(object sender,EventArgs e)slbl_Date.Text=日期:时间:+Convert.ToString(DateTime.Now);说明:在过程中将系统日期No

33、w赋给状态栏的第2个标签,即每隔1秒钟刷新一次日期与时间。,4.3 状态栏设计,(8)编写事件过程代码 显示当前光标位置(x,y)private void rtxt_Text_MouseMove(object sender,MouseEventArgs e)slbl_XY.Text=X:+Convert.ToString(e.X)+Y:+Convert.ToString(e.Y);,4.3 状态栏设计,(9)运行程序在文本编辑器上移动鼠标,状态栏第1窗格显示光标x,y坐标。第2个窗格中显示当前日期与时间,每隔1秒种更新一次。,4.3 状态栏设计,在C#应用程序中对话框用于与用户交互,C#.NE

34、T中工具箱中提供5种类型的对话框控件,如图4.15所示。OpenFileDialog控件:打开文件对话框SaveFileDialog控件:保存文件对话框PrintDialog控件:打印文件对话框ColorDialog:颜色对话框FontDialog:字体对话框其中:PrintDialog在打印类中。,4.4 对话框设计,图4.15 对话框控件,4.4 对话框设计,1.OpenFileDialog控件(1)作用:打开文件(2)位置:工具箱|对话框|OpenFileDialog(3)属性 FileName属性:用于设置或返回文件名。Filter属性:用于文件过滤器,格式为:描述1|过滤器1|描述2

35、|过滤器2。例如:所有文件(*.*)|*.*|RTF格式(*.RTF)|*.rtf|文本文件(*.txt)|*.txt打开文件的文件过滤器效果如图4.11下部的文件类型所示。,FilterIndex属性:用于指定默认的文件过滤器。例如:FilterIndex=2;表示指定默认文件过滤器为*.rtf。(4)方法ShowDialog():用于显示打开文件对话框,当返回OK值时表示打开文件对话框成功。例如:if(openFileDialog1.ShowDialog()=DialogResult.OK)rtxt_Text.LoadFile(openFileDialog1.FileName);,4.4

36、对话框设计,4.4 对话框设计,2.SaveFileDialog控件(1)作用:保存文件(2)位置:工具箱|对话框|SaveFileDialog(3)属性:与OpenFileDialog相同。(4)方法:ShowDialog():用于显示保存文件对话框,当返回OK值时表示打开保存文件对话框成功。例如:if(saveFileDialog1.ShowDialog()=DialogResult.OK)rtxt_Text.SaveFile(saveFileDialog1.FileName);,4.4 对话框设计,3.PrintDialog控件(1)作用:打印文件(2)位置:工具箱|打印|PrinteD

37、ialog(3)属性:与OpenFileDialog相同。(4)方法:ShowDialog():用于显示打印文件对话框,当返回OK值时表示打开打印文件对话框成功。例如:if(printDialog1.ShowDialog()=DialogResult.OK),4.4 对话框设计,4.FontDialog控件(1)作用:设置字体(2)位置:工具箱|对话框|FontDialog(3)属性:与OpenFileDialog相同。(4)方法:ShowDialog():用于显示设置字体对话框,当返回OK值时表示打开设置字体对话框成功。例如:if(fontDialog1.ShowDialog()=Dialo

38、gResult.OK)rtxt_Text.SelectionFont=fontDialog1.Font;,4.4 对话框设计,5.ColorDialog控件(1)作用:设置颜色(2)位置:工具箱|对话框|ColorDialog(3)属性:与OpenFileDialog相同。(4)方法:ShowDialog():用于显示设置颜色对话框,当返回OK值时表示打开设置颜色对话框成功。例如:if(colorDialog1.ShowDialog()=DialogResult.OK)rtxt_Text.SelectionColor=colorDialog1.Color;,【例4.5】设计带有下拉式菜单、弹出

39、式菜单、工具栏与状态栏的单文档编辑器,设计要求如下:(1)在下拉式菜单的“打开”、“保存”、“打印”、“颜色”与“字体”5个菜单项单击事件中,用“打开”、“保存”、“打印”、“颜色”与“字体”对话框,完成文件的打开、保存、打印工作,完成RichTexBox控件中被选文本的颜色与字体的设置工作。,4.4 对话框设计,(2)在窗体中添加一个工具栏,在此工具栏中添加5个按钮,分别用于文件的打开(Open)、保存(Save)、打印(Print)、颜色(Color)、字体(Font)的操作。(3)在状态栏中显示打开文件的信息,如图4.16所示。,4.4 对话框设计,图4.16 单文档编辑器设计示例,(1

40、)打开解决方案ex4_1.sln,新建项目ex4_5,将ex4_5设置为起动项目。(2)设置窗体属性Name:frm_RichTextBox。Text:“单文档编辑器设计示例”。(3)将项目ex4_4中的所有控件复制到frm_RichTextBox窗体中。(4)将项目ex4_4中的所有事件处理程序复制到frm_RichTextBox窗体中。,4.4 对话框设计,4.4 对话框设计,(5)状态栏中添加一个标签在StatusStrip控件中添加1个标签,设置属性:Name:tlbl_FileText:“文件:”(6)添加工具栏ToolStrip2在工具栏中添加5个按钮,设置属性如下:Name:tb

41、tn_Open tbtn_Save tbtn_Print tbtn_Color tbtn_FontText:打开 保存 打印机 颜色 字体Image:Open.bmp Save.bmp Print.bmp Color.bmp Font.bmp,(7)在下拉菜单的“编辑”主菜单中增加“颜色”与“字体”两个子菜单。Name:Menu_Color Menu_FontText:颜色 字体(8)添加打开、保存、打印、颜色、字体5个对话框控件:添加openFileDialog1控件,设置属性如下:,4.4 对话框设计,Filter:所有文件(*.*)|*.*|RTF格式(*.RTF)|*.rtf|文本文件

42、(*.txt)|*.txtFilterIndex:2用同样方法添加saveFileDialog1、printDialog1、fontDialog1、colorDialog1四个控件,并设置属性。,4.4 对话框设计,(9)编写“打开”按钮事件处理过程private void tbtn_Open_Click(object sender,EventArgs e)if(openFileDialog1.ShowDialog()=DialogResult.OK)rtxt_Text.LoadFile(openFileDialog1.FileName);slbl_File.Text=Convert.ToSt

43、ring(openFileDialog1.FileName);,4.4 对话框设计,(10)编写“保存”按钮事件处理过程 private void tbtn_Save_Click(object sender,EventArgs e)if(saveFileDialog1.ShowDialog()=DialogResult.OK)rtxt_Text.SaveFile(saveFileDialog1.FileName);slbl_File.Text=Convert.ToString(saveFileDialog1.FileName);,4.4 对话框设计,(11)编写“打印”按钮事件处理过程 pri

44、vate void tbtn_Print_Click(object sender,EventArgs e)if(printDialog1.ShowDialog()=DialogResult.OK)slbl_File.Text=Convert.ToString(printDialog1.PrintToFile);,4.4 对话框设计,(12)编写“颜色”按钮事件处理过程 private void tbtn_Color_Click(object sender,EventArgs e)if(colorDialog1.ShowDialog()=DialogResult.OK)rtxt_Text.Sel

45、ectionColor=colorDialog1.Color;,4.4 对话框设计,(13)编写“字体”按钮事件处理过程 private void tbtn_Font_Click(object sender,EventArgs e)if(fontDialog1.ShowDialog()=DialogResult.OK)rtxt_Text.SelectionFont=fontDialog1.Font;,4.4 对话框设计,(14)设置打开、保存、打印、颜色、字体子菜单事件处理过程 先在菜单控件中选择“打开”子菜单,然后在事件对话框中单击Click事件右边的下拉按钮,从下拉列表中选择“打开”按钮事

46、件处理过程tbtn_Open_Click,则当程序执行后,单击打开子菜单项时,会调用“打开”按钮事件处理过程tbtn_Open_Click过程。如图4.17所示。用类似方法设置保存、打印、颜色、字体子菜单事件处理过程。,4.4 对话框设计,图4.17 选择打开按钮事件处理过程,(1)状态栏设计(StatusBar控件)用StatusBar属性页可添加窗格,设置窗格的显示样式与内容。用Panels(i)的子属性Text、Key、MinWidth、Alignment、Style、Bevel动态设置第i个窗格的显示样式与内容。(2)通用对话框设计(CommonDialog控件)用ShowOpen、S

47、howSave、ShowPrinter方法打开、保存与打印文件;用FileName属性设置或返回要“打开”、“保存”、“打印”的文件名。,本次课小结,用ShowFont、ShowColor方法设置字体与颜色;用Flags属性设置初始颜色;用Color属性返回颜色;用Flags属性设置初始字体;用FontSize等属性返回字体大小等信息。思考题:4.12 作业:4.11、4.13、4.14 实验 4.3,本次课小结,4.5 MDI多窗体程序设计,单文档界面(SDI)如:记事本(NotePad),只能打开一个文档用户界面 多文档界面(MDI)如:Excel、Word,可同时打开多个文档,每个文档都

48、显示在自己的窗口中。这类用户界面称为多文档用户界面,即MDI。,4.5 MDI多窗体程序设计,MDI主窗体:下拉式菜单或工具栏 MDI子窗体1:工作界面1MDI多窗体程序MDI子窗体2:工作界面2 MDI子窗体n:工作界面n说明:通常在主窗体内设计下拉式菜单或工具栏,执行菜单项命令或者工具栏中按钮命令时调用子窗体程序。现介绍创建MDI主窗体与子窗体的方法,及在主窗体内调用子窗体程序的方法。,图4.18 学生档案管理主菜单设计界面,1.创建MDI主窗体(1)新建解决方案,将解决方案中新建窗体设置为MDI多文档窗体将窗体的IsMdiContainer属性设置为true;即:IsMdiContain

49、er=True则窗体的背景色变为淡黑色,表示该窗体为多文档主窗体。(2)在MDI主窗体中添加下拉式菜单,单击子菜单项调用子窗体程序,显示子窗体界面。,4.5 MDI多窗体程序设计,2.创建MDI子窗体(1)在项目中添加Windows窗体解决方案资源管理器|右击项目|添加|Windows窗体|选择Windows 窗体|名称:Name属性,如Form_XSDA11。(2)用窗体类定义对象=new();(3)设置窗体对象为子窗体.MdiParent=this;,4.5 MDI多窗体程序设计,(4)调用窗体对象,显示窗体界面.Show();即在主窗体的子菜单(Menu_11)单击事件中编写下列程序:p

50、rivate void Menu_11_Click(object sender,EventArgs e)Form_XSDA11 frmXsda=new Form_XSDA11();frmXsda.MdiParent=this;frmXsda.Show();,4.5 MDI多窗体程序设计,4.6 学生档案管理系统窗体设计,学生档案管理系统由1个MDI主窗体与6个MDI子窗体组成,MDI主窗体由下拉式菜单、工具栏、状态栏组成,用户单击菜单项命令能调用相应的子窗体程序,且已打开的子窗体标题能在“启动窗口”主菜单项中列出,如图4.15所示。子窗体中界面与程序代码设计将结合学生档案管理系统的各功能模块在

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号