《VBC高级窗口编程-打开、保存等窗口.ppt》由会员分享,可在线阅读,更多相关《VBC高级窗口编程-打开、保存等窗口.ppt(44页珍藏版)》请在三一办公上搜索。
1、高级窗体控件,菜单控件、工具栏控件和状态栏控件 列表视图控件和树视图控件的使用 字体、颜色对话框、文件对话框 多文档界面编程,第 8 章Windows应用程序开发进阶高级窗体控件,菜单控件、工具栏控件和状态栏控件 列表视图控件和树视图控件的使用 字体、颜色对话框、文件对话框 多文档界面编程,8.1 菜单、工具栏控件和状态栏控件,菜单、工具栏和状态栏是构成Windows应用程序的基本元素。Visual Studio 2008的工具箱中引入了一系列后缀为strip的控件,即MenuStrip(菜单)、ToolStrip(工具栏)和StatusStrip(状态栏),其中MenuStrip类似于普通软
2、件的标准菜单,如word应用程序的文件编辑等菜单。ToolStrip是工具栏控件,可以产生带图像的小按钮,类似于word的工具栏,通常提供菜单项的简便操作。StatusStrip是状态栏控件,一般位于界面的下方,用于提示用户信息,类似于Windows操作系统中的状态栏。本节将详细介绍它们的用法。,8.1.1 菜单控件的使用,MenuStrip控件是程序的主菜单。通常用来显示程序的各项功能,以方便用户选择执行。通过菜单,用户可以快速地进入需要的界面,因此,在开发Windows应用程序时,菜单仍然是组织大量选项最常用的方法。,使用MenuStrip控件设计下拉式菜单的步骤如下。,在Windows窗
3、体中添加一个MenuStrip控件。单击该控件的Items属性中的按钮,弹出“项集合编辑器”对话框。“项集合编辑器”对话框中可以添加MenuItem子项。如果要为已经添加的子项添加子菜单,可以选择MenuItem子项,单击其DropDownItems属性后面的按钮,弹出“项集合编辑器”对话框(子项)。在“项集合编辑器”(子项)对话框中可以给指定子项添加子菜单,一次类推,即可王城下拉式菜单的设计。为了更方便的使用菜单,可通过给菜单项设置快捷键来实现。设置快捷键的方式为:选中菜单项,在“属性”窗口中通过设置ShortcutKeys属性为菜单添加快捷键。,除了在设计视图中创建和修改菜单、上下文菜单和
4、菜单项的属性,还可以在运行时给菜单或上下文菜单添加菜单项。下面示例代码演示在程序中使用代码动态创建菜单的方法。01 private void CreateMenu()/自定义方法用来动态创建菜单02 03 MenuStrip mnu=new MenuStrip();/创建MenuStrip对象04 ToolStripMenuItem medit=new ToolStripMenuItem(编辑);/创建菜单对象05(medit);/为菜单栏添加主菜单项06 ToolStripMenuItem submcopy=new ToolStripMenuItem(复制);/创建菜单对象07/为主菜单添加
5、子菜单项08 medit.DropDownItems.Add(submcopy);09 this.Controls.Add(mnu);/添加菜单到窗体10,无论是在设计视图完成菜单设计,还是程序运行时动态添加菜单,都需要给菜单添加相应的功能,设计的菜单才有意义。通常菜单的功能都是通过选择菜单实现的,在菜单项的Click事件中添加处理程序。双击菜单项即可定位到该菜单的Click事件代码块中,然后在其中编写具体实现代码。如果用户需要编写带历史信息的菜单,即实现保存最近打开文件,可以将在菜单中最近打开文件的文件名和路径保存到事先建立的*.ini文件中,系统启动时读取其中数据建立数组菜单,即可实现显示
6、历史菜单的功能。,8.1.2 快捷菜单,ContextMenuStrip控件是一个快捷菜单,其位置是由鼠标所在的位置决定的。弹出式菜单的结构与下拉式菜单基本相同,区别是该菜单不是固定在窗体上面,而是通过单击鼠标右键来显示的。弹出式菜单的设计过程和下拉式菜单的设计过程基本类似,大家可参阅上节内容学习下拉式菜单的设计。下表列出了ContextMenuStrip类的常用成员及其说明。,下面代码演示了动态添加快捷菜单的方法。,01 private void CreateContextMenu()/自定义方法用来动态创建快捷菜单02 03/创建快捷菜单对象04 ContextMenuStrip cmnu
7、=new ContextMenuStrip();05/设置快捷菜单的绘制样式06 cmnu.RenderMode=ToolStripRenderMode.System;07/在快捷菜单中添加菜单项08(复制);09(粘贴);10(剪切);11/给窗体添加快捷菜单12 this.ContextMenuStrip=cmnu;13,8.1.3 工具栏控件的使用,ToolStrip控件是工具栏控件,它为用户提供了应用程序中常用菜单命令的快速访问方式。工具栏通常位于菜单栏的下方,由许多命令按钮组成,每个按钮上都有一个代表该按钮功能的小图标。由于工具栏方便直观,所以它被广泛用于各种应用软件的主界面当中。T
8、oolStrip控件的项支持8种不同的类型,还具备可扩展性并拥有高度可配置的属性。带下拉菜单的工具栏在其他计算机语言中实现比较复杂,但在.NET中只需将工具栏按钮的类型设置为DropDownButton。具有提示功能的工具栏的创建只需将相应按钮的ToolTipTile属性设置为提示内容。下表列出了ToolStrip类的常用成员及其说明。,【范例8-1】ToolStrip工具条的制作,8.1.4 状态栏控件的使用,StatusStrip控件是状态栏控件,通常位于窗体的底部,它一般用来显示应用管理系统的系统信息和软件操作员信息,如当前日期、时间、操作员、软件版本等。StatusStrip控件的项可
9、以由ToolStripStatusLable对象、ToolStripDropDownButton对象、ToolStripSplitButton对象和ToolStripProgressBar对象组成。下表列出了StatusStrip类的常用成员及其说明。,使用StatusStrip控件设计状态栏的步骤如下。,在Windows窗体中添加一个StatusStrip控件。单击该控件的Items属性中的按钮,弹出“项集合编辑器”对话框。在“项集合编辑器“对话框中,用户可以根据需要选择添加StatusLabel控件、ProgressBar控件、DropDownButton控件和SplitButton控件,
10、单击【确定】按钮,即可完成状态栏的设计。,第 8 章Windows应用程序开发进阶高级窗体控件,菜单控件、工具栏控件和状态栏控件 列表视图和树视图控件的使用 字体、颜色对话框、文件对话框 多文档界面编程,8.2 列表视图和树视图控件,TreeView控件和ListView控件有很多相似的地方,它们都为用户提供便捷的文件导航功能。不同的是TreeView控件以树视图方式展示给用户,而ListView控件以列表形式展现给用户。,8.2.1 列表视图控件的使用,ListView控件可以显示带图标的项列表,用户可以使用该控件创建类似Windows资源管理器的用户界面。该控件具有四种视图模式:“Larg
11、eIcon”、“SmallIcon”、“List”和“Details”。下表列出了ListView类的常用成员及其说明。其中View属性用于获取或设置项在控件中的显示方式,默认值为LargeIcon。FullRowSelect属性是指定只选择某一项,还是选择某一项所在的整行,取值为True,表示单击某项会选择该项及所有子项;取值为False,表示仅选择该项本身。,下面代码演示了如何使用FullRowSelect属性。01=View.Details;02=true;,【范例8-2】ListView使用示例,8.2.2 树视图控件的使用,TreeView控件是一个树形控件。该控件可以为用户显示节点
12、层次结构,每个节点又可以包含子节点,包含子节点的节点叫父节点。用户可以按展开或折叠的方式显示父节点或包含子节点的节点。另外,通过设置TreeView的CheckBoxes属性,还可以决定是否在节点旁显示复选框。其中Nodes属性用于设置TreeView控件中的所有节点。属性值TreeNodeCollection表示分配给树视图控件的树节点。,【范例8-3】TreeView控件使用示例,第 8 章Windows应用程序开发进阶高级窗体控件,菜单控件、工具栏控件和状态栏控件 列表视图控件和树视图控件的使用 字体、颜色对话框、文件对话框 多文档界面编程,8.3 完成复杂功能的对话框-通用对话框控件,
13、通用对话框是Mircrosoft Windows提供的一系列统一风格的对话框,其包括字体对话框、颜色对话框、文件对话框和打印对话框等。.NET Framework把这些对话框封装成组件,用户可以轻松地使用这些组件创建Windows应用程序。,8.3.1 字体对话框,FontDialog对话框是一个设置字体的组件,该组件允许用户选择当前安装在计算机中的字体,还可以设置字体的字形、大小、删除线等。如图所示。,下表列出了FontDialog类的主要成员以及说明。,下面对比较重要的成员进行介绍。,AllowVectorFonts属性语法:object.AllowVectorFonts=boolean
14、FixedPitchOnly属性语法:object.FixedPitchOnly=boolean,下面将演示如何创建FontDialog组件的实例,并设置其属性,代码如下。,01 FontDialog FD=new FontDialog();/创建字体对话框02 FD.FontMustExist=true;/确定字体必须存在03 FD.AllowVerticalFonts=true;/设置可以选择垂直显示的字体04 FD.ShowEffects=true;/显示字体预览窗口05 FD.ShowColor=true;/可以设置06 FD.Color=this.richTextBox1.ForeC
15、olor;/设置默认字体颜色07 FD.MaxSize=100;/设置字体的最大值08 FD.MinSize=9;/设置字体的最小值09 FD.Font=this.richTextBox1.Font;10 if(FD.ShowDialog()=DialogResult.OK)11 12 this.richTextBox1.Font=FD.Font;/获取用户选择的字体13 this.richTextBox1.ForeColor=FD.Color;/获取用户选择的颜色14,8.3.2 颜色对话框,ColorDialog控件用于选择颜色,它允许用户从调色板选择颜色或自定义颜色。如图所示。,下表列出
16、了ColorDialog类常用成员及其说明。,下面对比较重要的成员进行介绍。,AllowFullOpen属性。语法:object.AllowFullOpen=boolean Color属性。语法:object.Color=Color FullOpen属性。语法:object.FullOpen=boolean,下面将演示如何创建ColorDialog组件的实例,并设置其属性,代码如下。,01 ColorDialog cD=new ColorDialog();/创建颜色对话框对象cD02 cD.AllowFullOpen=true/用户是否可以使用该对话框定义自定义的颜色03 cD.FullOpe
17、n=true;/创建自定义颜色的控件是否可见04 cD.ShowHelp=true;/显示帮助按钮05 cD.CustomColors=new int0,0,0,0,0,0;06 if(cD.ShowDialog()=DialogResult.OK)/用户点击了“确定”按钮07 08 rTB.SelectionColor=cD.Color;/获取用户选择的颜色09 10 else11 12 rTB.SelectionColor=Color.Black;13,8.3.3 文件对话框,文件对话框包含打开文件对话框(OpenFileDialog)和保存文件对话框(SaveFileDialog)。打开
18、文件对话框组件允许用户选择要打开的文件,指定组件的Filter属性可以过滤文件类型。如图所示。保存文件对话框组件允许用户将文件保存到指定的位置。SaveFileDialog控件继承了OpenFileDialog控件的大多数属性、方法和事件。,下表列出了OpenFileDialog类的常用成员及其说明。,下面对比较重要的成员进行介绍。,Filter属性。获取或设置当前文件名筛选器字符串,该字符串决定对话框的“文件类型“或”另存为保存类型“框中出现的选择内容。例如,使“对话框只能打开相关的图片文件(.bmp、.gif、.jpg)。代码如下。OpenFileDialog1.Filter=bmp文件(
19、*.bmp)|*.bmp|gif文件(*.gif)|*.gif|jpg文件(*.jpg)|*.jpg;RestoreDirectory属性。获取或设置一个值,该值指示对话框在关闭前是否还原当前目录。ShowDialog方法。显示OpenFileDialog控件。语法:object.ShowDialog(),下面将演示如何创建OpenFileDialog组件的实例,并设置其属性,代码如下。,01 OpenFileDialog Ofd=new OpenFileDialog();/创建打开文件对话框对象02 Ofd.Title=打开播放文件对话框;/设置对话框标题03 Ofd.InitialDire
20、ctory=C:;/对话框初始目录04 Ofd.Filter=影视文件(*.rmvb)|*.rmvb|所有文件(*.*)|*.*;/定义文件筛选器05 Ofd.FilterIndex=1;/在对话框中默认显示的文件筛选器索引06 Ofd.ShowHelp=true;/打开文件对话框显示帮助按钮07 Ofd.HelpRequest+=new System.EventHandler(this.ShowOpenDialogHelp);08 Ofd.ShowDialog();,保存文件对话框代码如下。01 SaveFileDialog Sfd=new SaveFileDialog();/创建保存文件对
21、话框对象02 Sfd.Title=保存文件对话框;/设置对话框标题03 Sfd.InitialDirectory=C:;/对话框初始目录04 Sfd.Filter=Word文档(*.doc)|*.doc|所有文件(*.*)|*.*;/定义文件筛选器05 Sfd.FilterIndex=1;/在对话框中默认显示的文件筛选器索引06 Sfd.AddExtension=true;/自动在文件名中添加扩展名07 Sfd.CreatePrompt=true;/提示用户是否创建指定文件名的文件08 Sfd.OverwritePrompt=true;/提示用户是否覆盖指定文件名的文件09 Sfd.Check
22、PathExists=true;10 Sfd.ShowDialog();,8.3.4 打印对话框,PrintDialog控件用于显示预先配置的对话框,用户可以使用该对话框来选择打印机、选择要打印的页以及确定与打印有关的设置。,下面对比较重要的成员进行介绍。,Document属性。用于获取或设置一个值,指示用于获取PrintDocument对象。属性值默认值为空引用。ShowDialog方法。用来显示与打印机相关设置的对话框。该方法常与Document属性一起使用。如果用户在对话框中单击“确定“,则返回值为DialogResult.OK,否则返回值为DialogResult.Cancel。,下面
23、将演示如何创建PrintDialog组件的实例,并设置其属性,代码如下:01 this.printDialog1.AllowCurrentPage=true;/显示当前页02 this.printDialog1.AllowPrintToFile=true;/允许选择打印到文件03 this.printDialog1.AllowSelection=true;04 this.printDialog1.AllowSomePages=true;05 this.printDialog1.PrintToFile=false;/不选择打印到文件06 this.printDialog1.ShowHelp=tr
24、ue;07 this.printDialog1.ShowNetwork=true;/可以选择网络打印机08 this.printDialog1.ShowDialog();,第 8 章Windows应用程序开发进阶高级窗体控件,菜单控件、工具栏控件和状态栏控件 列表视图控件和树视图控件的使用 字体、颜色对话框、文件对话框 多文档界面编程,8.4 多文档界面编程,所谓MDI(Multiple Document Interface),就是多文档界面,它是一种应用非常广泛的窗体类型,在一个主窗体内包含多个子窗体,子窗体永远不会显示在主窗体的外面。,8.4.1 多文档界面应用程序简介,多文档界面(MDI
25、),由一个父窗体和若干个子窗体组成的。MDI允许同时显示多个子窗体,我们平常在用Word、Excel时碰到的就是MDI。用MDI可以在一个应用程序中同时打开多个视图窗口对应不同的文档类,所以就大大提高了程序的工作效率。创建MDI窗体有三个主要步骤,分别为:创建MDI父窗体、创建MDI子窗体和从父窗体调用子窗体。MDI应用程序打开多个子窗体时,需要合理安排子窗体的排列方式,要排列WinForms中的子窗口,需要调用Form类的LayoutMdi方法来使用MdiLayout枚举的成员,该枚举指定了MDI子窗口在MDI父窗口中的布局。,下表列出了MdiLayout枚举的成员。成员名称说明ArrangeIcons排列所有MDI子窗体的图标Cascade层叠排列子窗口TileHorizontal水平平铺子窗口TileVertical垂直平铺子窗口,8.4.2 多文档界面应用程序编程,本节通过一个实例介绍如何实现多文档界面应用程序的编程。【范例8-4】创建一个简单写字板应用程序,8.5 练一练,8.6 跟我上机 在C#中设计简单的记事本应用程序。要求尽可能多的实现记事本的基本功能。,