《【教学课件】第1章程序设计语言与程序设计方法.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第1章程序设计语言与程序设计方法.ppt(38页珍藏版)》请在三一办公上搜索。
1、第1章 程序设计语言与程序设计方法第2章 Visual C#概述第3章 C#语法基础第4章 顺序结构程序设计第5章 选择结构程序设计第6章 循环结构程序设计第7章 面向对象编程技术第8章 继承,第9章 数组与自定义类型第10章 菜单、工具栏与状态栏第11章 文件操作第12章 数据库技术第13章 ActiveX控件第14章 异常处理与跟踪调试第15章 开发Web应用程序第16章 部署应用程序,下一页,Visual C#程序设计教程,上一页,章节目录,上一页,下一页,第10章 菜单、工具栏与状态栏10.1 菜单主菜单的设计1.创建菜单的方法 可以使用两种方法创建主菜单:一种方法使用MainMenu
2、类的构造函数实现主菜单的创建;一种简单的方法是通过C#中的MainMenu控件即菜单设计器实现菜单的创建。,章节目录,上一页,下一页,(1)添加主菜单新建一个Windows应用程序,在工具箱中双击MainMenu控件或者用鼠标拖放到窗体上,则在窗体的顶部将添加一个菜单。如图10-1左图所示。,图10-1 在窗体中创建菜单,章节目录,上一页,下一页,(2)添加子菜单在图10-1中,单击菜单中“请在此输入”,输入该菜单项的名称为的为“文件”,建立文件子菜单项;然后在该菜单项的下方显示一个标注为“请在此输入”区域,一个位于该菜单项的右方显示标注为“请在此输入”区域,可以选择区域继续添加。(3)移动菜
3、单项选中要移动的菜单项,是用鼠标拖动到相应的位置即可。(4)删除菜单项选中要删除的菜单项,单击右键,再弹出式菜单中选中“删除”即可删除该菜单项。,2.MenuItem对象的属性设计3.菜单事件 建立菜单后,往往要求菜单实现相应的事件处理功能,一般通过菜单项Click事件处理相应的功能,即通过单击菜单项实现程序功能的交互。该事件在以下几种情况下发生:单击菜单项、使用该菜单项相应的快捷键、使用键盘操作时按回车键。,章节目录,上一页,下一页,10.1.2 弹出式菜单的设计 弹出式菜单也成为上下文菜单,弹出式菜单能以更加灵活的方式为用户提供更加便利的操作,当用户在不同位置单击鼠标右键,则将显示一组不同
4、的菜单项。在C#中,使用工具箱中的ContextMenu控件很容易实现弹出式菜单的设计。方法为从工具箱中拖放一个ContextMenu控件到窗体上,设计相应的子菜单项。弹出式菜单控件需要和别的控件结合使用。其属性与主菜单基本相同。,章节目录,上一页,下一页,10.1.3 菜单的使用【例10-1】创建一个类似于记事本菜单的窗体,如图10-2所示。图10-2 菜单的设计,章节目录,上一页,下一页,分析:本题中需要使用MainMenu控件实现主菜单的设计,ContextMenu控件实现弹出是菜单的设计。实现步骤如下:(1)建立项目(2)设计窗体 在窗体中添加一个MainMenu控件,即主菜单,用于在
5、窗体的顶部显示菜单项;添加一个ContextMenu控件,用于程序运行中弹出式菜单的设计。并设计每个控件的属性。,章节目录,上一页,下一页,10.2 工具栏的设计 工具栏是Windows的标准特性,通过使用工具栏,能改善软件界面的布局,达到快速实现相应功能的目的。一般情况下,工具栏可以实现与菜单相似的效果。在.NET的C#中使用ToolBar类实现工具栏的设计。,章节目录,上一页,下一页,10.2.1 工具栏的创建方法建立一个Windows应用程序,创建相应的程序。在指定的窗体上添加工具栏步骤如下:在“工具箱”中双击ToolBar控件,在窗体的顶部显示一个放置toolBarButton的容器控
6、件。并设计 toolBarButton的属性。,章节目录,上一页,下一页,在该控件中添加工具按钮。选中工具栏,在该属性中选择“行为”组,在“行为”组中选择Buttons属性,单击添加按钮,弹出如图10-2所示的集合编辑器。在集合编辑器中添加按钮并设置相应的属性。,章节目录,上一页,下一页,图10-4 ToolBarButton集合编辑器,一般来讲,工具栏中的按钮往往与图像相结合,这种方法的实现需要与存放图像的ImageList控件相结合。首先应在窗体中添加“ImageList”控件,在控件中添加相应的图像。其次,设置工具栏的ImageList属性,在该属性的下拉框中选择ImageList控件,
7、最后,打开ToolBarButton集合编辑器,设置ImageIndex为每个ToolBarButton按钮选择相应得图像即可。给工具栏中的toolBarButton控件添加代码实现功能。,章节目录,上一页,下一页,10.2.2 编写toolBar_ButtonClick事件工具栏中按钮的事件不是通过具体按钮的单击实现的,是通过工具栏的单击事件实现的。通过单击事件中e.Button判断工具栏中按钮执行命令的情况。通过下例描述。【例10-2】根据工具栏中的按钮改变标签中的文字,如图10-3所示。,章节目录,上一页,下一页,图10-3 工具栏的使用,该题的工具栏单击事件的代码如下。private
8、void toolBar1_ButtonClick(object sender,e)if(e.Button=toolBarButton1)/如果单击工具按钮【水浒】,则显示下面的文本 label1.Text=滚滚长江东逝水,浪花淘尽英雄。是非成败转头空,几度夕阳红。;else if(e.Button=toolBarButton2)/如果单击工具按钮【春晓】,则显示下面的文本 label1.Text=春眠不觉晓,处处闻啼鸟,夜来风雨声,花落知多少。;,章节目录,上一页,下一页,else if(e.Button=toolBarButton3)/如果单击工具按钮【枯藤】,则显示下面的文本 label
9、1.Text=枯藤,老树,昏鸦,夕阳西下,断肠人在天涯。;else/如果单击工具按钮【水浒】,则显示下面的文本 label1.Text=少壮不努力,老大图悲伤。;另外,工具栏中按钮往往实现和菜单中选项相同的功能,这种情况下,不能通过ToolBarButton的DropDownMenu实现,因为它只能连接相关的,章节目录,上一页,下一页,弹出式菜单;可以通过设置ToolBarButton的Tag的属性为相应菜单对象,从而实现和菜单对象的关联。比较简便的方法是在程序中设置。如可以在主窗体的构造程序InitializeComponent()中该工具栏按钮的后面加上以下代码:toolBarButton
10、1.Tag=menuItem6;编写工具栏单击事件,通过调用PerformClick方法激活相应的菜单项,如以下代码:ToolBarButton button=e.Button;MenuItem mItem=(MenuItem)button.Tag;mItem.PerformClick();,章节目录,上一页,下一页,10.3 状态栏的设计10.3.1 状态栏的创建在Windows的应用程序中,利用设计器打开要创建状态栏的窗体。然后添加状态栏,添加过程如下:在工具箱的Windows选项中双击StatusBar控件,在窗体上显示一个状态栏。设置状态栏的属性。首先设置ShowPanel的值为Tru
11、e,即要求在状态栏上显示状态面板,然后,单击Panels属性右边的,弹出StatusBarPanels集合编辑器对话框,如图10-7。通过“添加”按钮实现状态面板的添加。也可使用“移除”按钮实现状态面板的删除。,章节目录,上一页,下一页,【例10-3】制作一个点菜的菜单:如图10-4所示,通过主菜单或者工具栏可以实现点菜的功能,并将点的菜名列在窗体右边的ListBox控件中。在窗体中单击鼠标右键,将出现一个弹出式菜单,可以点当天的优惠菜。在窗体下方有一个状态栏,显示出当前点过的菜的总价钱。在窗体中间有两个按钮。通过【点菜完毕】按钮,可以将Memo控件中已经点的菜输出打印;通过【重新点菜】按钮,
12、可以将Memo组件中的内容清空,同时将状态栏中的总价格清为零。,章节目录,上一页,下一页,建立Windows 应用程序和设计相应的窗体界面。添加控件,设置相应的属性。,章节目录,上一页,下一页,图10-4 点菜的菜单的设计,章节目录,上一页,下一页,通过设置工具栏中按钮的Tag属性和菜单相关联。设置如下:/设置工具栏中的工具按钮和菜单项关联toolBarButton1.Tag=menuItem6,Items.Count:0,Text:大(&B)toolBarButton2.Tag=menuItem7,Items.Count:0,Text:小(&S)toolBarButton4.Tag=menu
13、Item4,Items.Count:0,Text:麻辣鸡(&C)toolBarButton5.Tag=menuItem5,Items.Count:0,Text:群英会(&R),章节目录,上一页,下一页,也可以主窗体的构造程序InitializeComponent()中该工具栏按钮的后面加上以下代码:toolBarButton1.Tag=menuItem6;toolBarButton2.Tag=menuItem7;toolBarButton4.Tag=menuItem4;toolBarButton5.Tag=menuItem5;toolBar1中的按钮与菜单关联需要的工具栏的单击事件如下:Too
14、lBarButton button=e.Button;MenuItem mItem=(MenuItem)button.Tag;mItem.PerformClick();,编写程序代码。程序的运行结果如图10-4所示。,章节目录,上一页,下一页,10.4.1 模式对话框和非模式对话框 对话框可以分为模式对话框和非模式对话框两种。模式对话框是指用户只能在当前的窗体进行操作,在该窗体关闭之前不能切换到其它窗体。非模式对话框是指当前所操作的窗体可以切换。两者区别是在对话框被关闭之前用户能否在同一应用程序的其他地方进行工作。C#的From类中,使用show方法实现非模式窗体显示。通常情况下,窗体的显示为
15、非模式显示。如显示非模式窗体From2,代码如下:Form2 frm=new Form2();frm.Show();,章节目录,上一页,下一页,模式窗体的显示通过ShowDialog方法实现,如在程序运行过程中,以下代码实现窗体的模式显示:Form2 frm=new Form2();frm.ShowDialog();【例10-4】通过多窗体了解模式窗体显示和非模式窗体显示。如图10-5所示。本例使用3个窗体了解模式窗体显示和非模式窗体显示。主窗体定义为Form1,标题为“欢迎使用本系统”,通过“说明”按钮实现Form3即标题为“系统说明”窗体非模式显示,即在运行过程中,可以通过鼠标点击和For
16、m1之间切换;,章节目录,上一页,下一页,通过“登录”按钮实现运行过中Form2即标题为“使用密码登录”的窗体模式显示,不能通过鼠标点击和Form1之间切换。,章节目录,上一页,下一页,图10-11 多窗体显示,在窗体Form1为button1控件编写单击事件,实现说明窗体Form3的非模式显示。代码如下:private void button1_Click(object sender,System.EventArgs e)Form3 frm=new Form3();/声明frm为From3 frm.Show();/非模式显示,章节目录,上一页,下一页,为窗体Form1中的button2控件编
17、写单击事件,实现使用密码登录窗体Form2的模式显示。代码如下:private void button2_Click(object sender,System.EventArgs e)Form2 frm=new Form2();frm.ShowDialog();,章节目录,上一页,下一页,为窗体Form2中的button1控件编写单击事件,实现密码判断,代码如下:private void button1_Click(object sender,System.EventArgs e)if(textBox1.Text=abcd)MessageBox.Show(您成功登录了本系统,提示);Appli
18、cation.Exit();/应用程序终止运行 else MessageBox.Show(您的密码有误,请重新输入!,提示);,章节目录,上一页,下一页,10.5.2 消息框消息框一般用于程序运行过程中显示提示或信息。可以有不同格式的消息框。Windows应用程序中,为提高于用户的交互能力,消息框大量使用。C#中通过MessageBox类实现消息框的定义。1.MessageBox类该类提供了静态方法Show显示消息框,有多种形式实现消息框的显示。(1)用于显示指定文本的消息框格式如下:图10-12 显示文本的消息框public static DialogResult Show(string);
19、,章节目录,上一页,下一页,(2)显示指定文本和标题的消息框格式如下:图10-13 显示文本和标题的消息框public static DialogResult Show(string,string);其中第一个string参数用于显示文本信息,第二个string参数用于显示消息框的标题。在程序中编写代码如下:MessageBox.Show(大家晚上好!,问候);(3)显示具有指定文本、标题和按钮的消息框格式如下:public static DialogResult Show(string,string,MessageBoxButtons);,章节目录,上一页,下一页,10.5.3 字体对话框文
20、本的显示要使用一定的风格,C#中使用Font类对各种字体进行了封装,这样,程序的编写过程中,不仅可以使用Windows自带的标准字体,还可以使用程序中定义的新字体。通过该类的FontFamily属性描述字体。通过FontStyle指定应用到文本的字体的样式,结合这两个属性描述文本的显示风格。,章节目录,上一页,下一页,10.5.4 选择文件对话框在命名空间中封装了一个类(Class)OpenFileDialog,在C中的选择文件对话框就是继承这个类。SaveFileDialog用于选择文件并保存文件。下列代码是创建一个此类的对象:OpenFileDialog openFileDialog1=n
21、ew OpenFileDialog();,章节目录,上一页,下一页,10.5.5 保存文件对话框 在C中创建一个保存文件对话框是通过继承命名空间中类(Class)SaveFileDialog来实现的。下列代码是创建一个此类的对象:SaveFileDialog saveFileDialog1=new SaveFileDialog();,章节目录,上一页,下一页,10.5.6 自定义对话框在Windows编程过程中,往往出现要求显示信息量大或特定样式的对话框,需要自定义完成。在应用程序中添加自定义的对话框方法如下:添加Windows窗体。修改该窗体的属性和名称。修改窗体的FormBorderSty
22、le属性为FixedDialog。设置Contral、MinimizeBox、MaximizeBox、ShowInIaskar的属性为False。添加按钮,实现对话框按钮的功能。对话框中根据按钮的返回值的效果可以根据窗体的AcceptButton和CancelButton设置。,章节目录,上一页,下一页,10.5.7 多选项卡1.基本属性TabControl控件最重要的属性是TabPages,它包含单独的选项卡。每个单独的选项卡是一个TabPage对象。单击选项卡时,将为相应的TabPage对象引发Click事件。2.TabPage对象当TabControl控件放置在窗体上以后,应添加选项卡,方法如下:,章节目录,上一页,下一页,使用鼠标选中TabControl控件,单击右键在下拉菜单中选择“添加选项卡”实现选项卡的添加;或者在TabControl控件的属性中设置,选中“TabPages”属性,单击右边的“”,弹出“TabPage集合编辑器”,可以使用“添加”按钮实现选项卡的添加。使用同样的方法可以实现选项卡的删除。设置选项卡的属性。,章节目录,上一页,下一页,总结,作业,