第9讲C#Windows高级界面设计.ppt

上传人:本田雅阁 文档编号:2070742 上传时间:2019-02-10 格式:PPT 页数:43 大小:726.01KB
返回 下载 相关 举报
第9讲C#Windows高级界面设计.ppt_第1页
第1页 / 共43页
第9讲C#Windows高级界面设计.ppt_第2页
第2页 / 共43页
第9讲C#Windows高级界面设计.ppt_第3页
第3页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第9讲C#Windows高级界面设计.ppt》由会员分享,可在线阅读,更多相关《第9讲C#Windows高级界面设计.ppt(43页珍藏版)》请在三一文库上搜索。

1、Visual C# .NET程序设计,第九讲 Windows高级界面设计,沈志忠 北京科技大学信息工程学院,第10章 Windows高级界面设计,本章要点: 标准对话框的使用 菜单的制作方法 MDI应用程序的编制方法 鼠标事件与键盘事件编程,10.1 循序渐进学理论,10.1.1 对话框控件的应用 1OpenFileDialog控件 (1)OpenFileDialog控件的常用属性 Title属性:该属性用来获取或设置对话框标题,默认值为空字符串(“”)。 Filter属性:该属性用来获取或设置当前文件名筛选器字符串,该字符串决定对话框的【另存为文件类型】或【文件类型】框中出现的选择内容。

2、FilterIndex属性:该属性用来获取或设置文件对话框中当前选定筛选器的索引。, FileName属性:该属性用来获取包含在打开文件对话框中选定的文件名的字符串。 InitialDirectory属性:该属性用来获取或设置文件对话框显示的初始目录,默认值为空字符串(“)。 ShowReadOnly属性:该属性用来获取或设置一个值,该值指示对话框是否包含只读复选框。 ReadOnlyChecked属性:该属性用来获取或设置一个值,该值指示是否选定只读复选框。 Multiselect属性:该属性用来获取或设置一个值,该值指示对话框是否允许选择多个文件。 FileNames属性:该属性用来获取对

3、话框中所有选定文件的文件名。每个文件名都既包含文件路径又包含文件扩展名。 RestoreDirectory属性:该属性用来获取或设置一个值,该值指示对话框在关闭前是否还原当前目录。,(2)OpenFileDialog控件的常用方法,常用方法有两个OpenFile和ShowDialog 方法,本节只介绍ShowDialog方法,该方法的作用是显示通用对话框,其一般调用形式如下: 通用对话框对象名.ShowDialog(); 2SaveFileDialog控件。 SaveFileDialog控件也具有FileName、Filter、FilterIndex、InitialDirectory、Titl

4、e等属性,这些属性的作用与OpenFileDialog对话框控件基本一致 。,【例10-1】 编写一个简易文本编辑器,程序的设计界面如图10-1所示。程序运行时单击【打开文件】按钮,将会出现如图10-2所示的【打开文件】对话框。选中一个文件后按【打开】按钮将会把选中的文件打开并显示在RichTextBox控件中,如图10-3所示。此时若单击【另存为】按钮,将会出现如图10-4所示的【保存文件】对话框,在该对话框中输入要保存的文件名,然后按【保存】按钮,打开的文件将以指定的文件名保存起来。,图10-1 程序设计界面,图10-3 程序运行界面,图10-2 【打开文件】对话框,图10-4 【保存文件

5、】对话框,3FontDialog控件,(1)Font属性:该属性是字体对话框的最重要属性,通过它可以设定或获取字体信息。 (2)Color属性:该属性用来设定或获取字符的颜色。 (3)MaxSize属性:该属性用来获取或设置用户可选择的最大磅值。 (4)MinSize属性:该属性用来获取或设置用户可选择的最小磅值。 (5)ShowColor属性:该属性用来获取或设置一个值,该值指示对话框是否显示颜色选择框。 (6)ShowEffects属性:该属性用来获取或设置一个值,该值指示对话框是否包含允许用户指定删除线、下划线和文本颜色选项的控件。,4ColorDialog控件,(1)AllowFull

6、Open属性:该属性用来获取或设置一个值,该值指示用户是否可以使用该对话框定义自定义颜色。 (2)FullOpen属性:该属性用来获取或设置一个值,该值指示用于创建自定义颜色的控件在对话框打开时是否可见。 (3)AnyColor属性:该属性用来获取或设置一个值,该值指示对话框是否显示基本颜色集中可用的所有颜色。 (4)Color属性:该属性用来获取或设置用户选定的颜色。,【例10-2】 为简易文本编辑器增加设置字体和字体颜色的功能。在简易文件编辑器中再增加两个按钮(button4和button5),设置它们的显示文字为【字体】和【颜色】。程序运行中选定了一些文本后,单击【字体】按钮将显示出如图

7、10-5所示的【字体】对话框供用户设置字体,设置字体后按【确定】按钮,设置的字体将应用于当前选定的文本上。选定文本后单击【颜色】按钮将会出现如图10-7所示的【颜色】对话框,选择颜色后按【确定】按钮,选中的颜色将应用于当前选定的文本上。,图10-5 字体对话框,图10-6 设置的字体,图10-7 颜色对话框,图10-8 设置的颜色,5PrintDialog控件和PrintDocument控件,需注意的是:该对话框并不负责具体的打印任务,要想 在应用程序中控制打印内容必须使用PrintDocument控件。 关于这两个控件的详细使用方法读者可参阅相关资料或 Visual C#的帮助文件。 6用户

8、自定义对话框 (1)将窗体的FormBorderStyle属性值设置为FixedDialog; (2)根据需要向窗体上添加控件; (3)使用窗体的ShowDialog方法显示窗体,即显示出对话框。,菜单和工具栏,Microsoft在Visual C# 2005中,采用了全新的菜单、工具栏设计的解决方案,其中关键一点是,使用了ToolStrip技术。ToolStrip类及其关联的类为创建工具栏、状态栏和菜单提供了完整的解决方案。,菜 单,1. MenuStrip控件 MenuStrip控件实际上是窗体菜单结构的容器,可以容纳ToolStripMenuItem、ToolStripComboBox、

9、ToolStripSeparator和ToolStripTextBox对象。,创建主菜单 在VS 2005中,通过工具箱的MenuStrip控件,可以轻松地在窗体中创建 主菜单,在标有“请在此处键入”的地方输入名称便可以添加菜单选项,VS 2005会在刚才添加选项的下方和右侧添加新的菜单选项。和其他控件一样, 可以利用属性窗口来设置菜单的各种属性。,使用菜单,使用菜单,菜单,2. ContextMenuStrip控件 Visual C# 2005中,提供了ContextMenuStrip控件,它是ToolStripMenuItem、ToolStripComboBox、ToolStripSepa

10、rator和ToolStripTextBox对象的容器在设计快捷菜单时,需要通过可视控件(以及Form本身)的ContextMenuStrip属性将ContextMenuStrip类绑定到该控件上,多个控件可共同使用一个ContextMenuStrip。,工具栏,2. ToolStrip控件 在.NET Framework 2.0中,使用ToolStrip及其关联的类,可以创建具有Microsoft Windows XP、Microsoft Office、Microsoft Internet Explorer或自定义的外观和行为的工具栏及其他用户界面元素。,10.1.3 多窗体程序设计,Win

11、dows应用程序很少只由一个窗体组成,一般情况下一个应用程序均拥有很多个窗体。C#项目刚建立时只有一个名为Form1的窗体,要建立多窗体应用程序应首先为项目添加窗体,添加窗体的方法如下: (1)单击工具栏上的“ ”按钮或执行【项目】【添加Windows窗体】命令,将会出现如图10-17所示的【添加新项】对话框。 (2)在该对话框的【模板】下面的列表框中选中【Windows 窗体】图标,在名称后面的文本框中输入窗体名,然后按【打开】按钮,即为应用程序添加了一个窗体。,图10-17 【添加新项】对话框,【例10-4】 为例13-3的简易文本编辑器添加一个关闭提示窗口。程序运行时,当执行了【文件】菜

12、单中的【退出】命令时,将会出现如图10-18所示的对话框,在该对话框中选中【确定】按钮将退出应用程序,选中【取消】按钮,将不退出应用程序。请添加这样的一个对话框。,图10-18 【退出】对话框,10.1.4 多文档界面(MDI)应用程序设计,1MDI应用程序的概念 MDI程序中的应用程序窗口称为父窗口,应用程序内部的窗口称为子窗口。,图10-19 MDI应用程序窗口,2与MDI应用程序设计有关的属性、方法和事件,(1)属性 常用的MDI父窗体属性如下。 ActiveMdiChild属性:该属性用来表示当前活动的MDI子窗口,如果当前没有子窗口,则返回null。 IsMdiContainer属性

13、:该属性用来获取或设置一个值,该值指示窗体是否为多文档界面(MDI)子窗体的容器,即MDI父窗体。 MdiChildren属性:该属性以窗体数组形式返回MDI子窗体,每个数组元素对应一个MDI子窗体。,常用的MDI子窗体的属性有: IsMdiChild属性:该属性用来获取一个值,该值指示该窗体是否为多文档界面(MDI)的子窗体。 MdiParent属性:该属性用来指定该子窗体的MDI父窗体。 (2)方法 一般只使用父窗体的LayoutMdi方法,该方法的调用格式如下: MDI父窗体名.LayoutMdi(Value); (3)事件 常用的MDI父窗体的事件是MdiChildActivate,当

14、激活或关闭一个MDI子窗体时将发生该事件。,3菜单合并,父窗体和子窗体可以使用不同的菜单,这些菜单会在选择子窗体的时候合并。 在C#中创建的父子窗体默认可以自动合并菜单,但是其菜单的合并仅仅是将子窗体的菜单追加到父窗体菜单后面,要想灵活的控制子窗体菜单在父菜单中的位置,必须设置好MergeAction和MergeIndex两个属性。 父子窗体的菜单不会因为名字的相同而匹配,而是具有相同MergeIndex属性的相匹配,因此要想将两个菜单匹配起来,必须设置一致的MergeIndex值。匹配有五种模式,通过MergeAction来设定:Append,Insert,Replace,Remove和Ma

15、tchOnly。 Append: 将该菜单项放置到菜单栏的最后; Insert:将菜单项插入到满足MergeIndex指定的位置 Remove:删除MergeIndex指定位置的菜单项 Replace: 替换MergeIndex指定位置的菜单项 MatchOlny:需要进行匹配,但不插入菜单项 通常情况下,不用设置父窗体菜单的MergeAction。如果子窗体MergeAction为Append,则将菜单添加到父窗体菜单的后面(有可能是父窗体所有菜单的最后面,这也默认值),如果为Insert则插到其前面,Replace是替代,Remove则是将自己删除,MatchOnly则会合并,并将其所有的

16、其子菜单都列于其下面(这也许是我们通常想要的,特别是在一级菜单中)。,【例10-5】 编写一个能够显示多个文本文件的多文档程序。程序设计时的MDI父窗口如图10-20所示,子窗口如图10-21所示。程序运行时的菜单如图10-22(a)和图10-22(b)所示。打开了多个文件后的程序运行界面分别如图10-22(c)和图10-22(d)所示。程序运行时【文件】【打开】命令将弹出一个打开对话框让用户选择一个文件打开。打开文件后【文件】菜单中多个一项【关闭】,执行它将关闭当前打开的文件,执行【文件】【退出】命令将退出应用程序。【窗口】菜单的前四项用来对子窗口进行相应的排列,【窗口】菜单中的【关闭所有子

17、窗口】命令的作用是删除所有的子窗口,【窗口列表】用来列出打开的所有子窗体。,图10-20 父窗口设计界面,图10-21 子窗口设计界面,(a),(b),(c),(d),图10-22 程序运行时的菜单,键盘事件处理,在控件有焦点的情况下,按下或松开键盘上的键时会产生键盘事件,这些事件的处理可由任何一个从System.Windows.Forms.Control派生的控件来完成。键盘事件分为两类,其一是KeyPress 事件,按下一个有ASCII码的键时,就发生KeyPress 事件,KeyPressEventArgs类型的参数包含与此事件相关的数据。其二是KeyUp或KeyDown事件,KeyEv

18、entArgs类型的参数包含与此事件相关的数据。,键盘事件处理,1KeyPressEventArgs类的主要属性(KeyPress事件的一个参数类型) (1)Handled属性:用来获取或设置一个值,该值指示是否处理过 KeyPress 事件。 (2)KeyChar属性:用来获取按下的键对应的字符,通常是该键的ASCII码。 2KeyEventArgs类的主要属性(KeyUp和KeyDown事件的一个参数) (1)Alt属性:用来获取一个值,该值指示是否曾按下 Alt 键。 (2)Control属性:用来获取一个值,该值指示是否曾按下 Ctrl 键。,(3)Shift属性:用来获取一个值,该值

19、指示是否曾按下Shift键。 (4)Handled属性:用来获取或设置一个值,该值指示是否处理过此事件。 (5)KeyCode属性:以Keys枚举型值返回键盘键的键码,该属性不包含修改键(Alt、Control和Shift键)信息,用于测试指定的键盘键。 (6)KeyData属性:以Keys枚举类型值返回键盘键的键码,并包含修改键信息,用于判断关于按下键盘键的所有信息。 (7)KeyValue属性:以整数形式返回键码,而不是Keys枚举类型值。用于获得所按下键盘键的数字表示。 (8)Modifiers属性:以Keys枚举类型值返回所有按下的修改键(Alt、Control和Shift键),仅用于

20、判断修改键信息。,【例10-8】 编写一个程序用来演示键盘事件,程序运行时在一个标签上显示按下的键,在另一个标签上显示修改键信息。程序的运行界面分别如图10-31图10-34所示。,图10-31 按下了K,图10-32 按下了回车键,图10-33 按下了Shift+K,图10-34 按下了Ctrl+”,鼠标事件处理,鼠标事件是在鼠标与控件或窗体交互时产生的,这些事件包括 MouseDown、MouseUp、MouseMove、MouseEnter、MouseLeave、MouseHover。,鼠标事件处理,(1)MouseEnter事件 该事件在鼠标指针进入控件时发生。 (2)MouseMov

21、e事件 该事件在鼠标指针移到控件上时发生。 Button属性:用来获取曾按下的是哪个鼠标按钮。 Clicks属性:用来获取按下并释放鼠标按钮的次数。 Delta属性:用来获取鼠标轮已转动的制动器数的有符号计数。 X属性:用来获取鼠标所在位置的 x 坐标。 Y属性:用来获取鼠标所在位置的 y 坐标。,(3)MouseHover事件 当鼠标指针悬停在控件上时将发生该事件。 (4)MouseDown事件 当鼠标指针位于控件上并按下鼠标键时将发生该事件。 (5)MouseWheel事件 在移动鼠标轮并且控件有焦点时将发生该事件。 (6)MouseUp 事件 当鼠标指针在控件上并释放鼠标键时将发生该事件

22、。 (7)MouseLeave事件 在鼠标指针离开控件时将发生该事件。,10.2 典型实例练能力,10.2.1 典型实例一:输入对话框的设计 【实例题目】 设计一个输入数据的对话框。该程序有两个窗体,名为Form1和InputBox,它们的设计界面分别如图10-35和图10-36所示。程序运行时单出【显示对话框】按钮将显示如图10-37所示的对话框,在其中的文本框中输入数据后按【确定】按钮,输入的数据将显示出来,如图10-38所示。,图10-35 Form1窗体设计界面,图10-36 输入对话框设计界面,图10-37 输入对话框运行界面,图10-38 Form窗体运行界面,10.3 上机练习重应用,10.3.1 上机练习一:图像浏览器的制作 【练习题目】 制作一个能够同时打开多个图片文件的多文档应用程序。子窗体的设计界面如图10-39所示,在该窗体上添加了一个图片框控件,用来显示图片。主窗体与子窗体的菜单与例10-5完全一致,菜单功能也完全一致,只不过打开的不是文本文件而是图片文件。程序某时刻的运行界面如图10-40所示。,图10-39 显示图片的子窗口,图10-40 程序某时刻的运行界面,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1