Download presentation
Presentation is loading. Please wait.
1
项目四 Windows应用程序窗口设计 任务列表: 1、在图片查看器上添加菜单和工具栏 2、多文档窗体的设计 3、对话框的应用
4、创建画图板
2
一、项目教学目标 学会添加、删除、移动菜单项 学会创建复选菜单项 学会对菜单进行编程 学会创建上下文菜单 学会对菜单项创建快捷键
学会创建工具栏项、工具图标 学会创建多文档窗体和Messbox.show()函数的使用 学会常用的键盘和鼠标事件
3
二、项目知识准备——菜单控件 1.菜单的结构 图4-1 菜单结构一 图4-2 菜单结构二
4
二、项目知识准备——菜单控件 2.菜单项的常用属性 (1)Text属性:该属性用来获取或设置一个值,通过该值指示菜单项标题。
(2)Checked属性:该属性用来获取或设置一个值,通过该值指示选中标记是否出现在菜单项文本的旁边. (3)DefaultItem属性:该属性用来获取或设置一个值,通过该值指示菜单项是否为默认菜单项。 (4)Enabled属性:该属性用来获取或设置一个值,通过该值指示菜单项是否可用。 (5)RadioCheck属性:该属性用来获取或设置一个值,通过该值指示选中的菜单项的左边是显示单选按钮还是选中标记。
5
二、项目知识准备——菜单控件 (6)Shortcut属性:该属性用来获取或设置一个值,该值指示与菜单项相关联的快捷键。
(7)ShowShortcut属性:获取或设置一个值,该值指示与菜单项关联的快捷键是否在菜单项标题的旁边显示。 (8)MdiList属性:该属性用来获取或设置一个值,通过该值指示是否用在关联窗体内显示的多文档界面(MDI)子窗口列表来填充菜单项。 3.菜单项的常用事件 菜单项的常用事件主要有Click事件,该事件在用户单击菜单项时发生。
6
二、项目知识准备——多窗体程序设计 Windows应用程序很少只由一个窗体组成,一般情况下一个应用程序均拥有很多个窗体。C#项目刚建立时只有一个名为Form1的窗体,要建立多窗体应用程序应首先为项目添加窗体,添加窗体的方法如下: (1)单击工具栏上的“ ”按钮或执行【项目】→【添加Windows窗体】命令,将会出现如图4-3所示的【添加新项】对话框。 (2)在该对话框的【模板】下面的列表框中选中【Windows 窗体】图标,在名称后面的文本框中输入窗体名,然后按【打开】按钮,即为应用程序添加了一个窗体。
7
二、项目知识准备——多窗体程序设计 图4-3 【添加新项】对话框
8
二、项目知识准备——多文档界面(MDI)应用程序设计
9
二、项目知识准备——多文档界面(MDI)应用程序设计
(1)属性 常用的MDI父窗体属性如下。 ActiveMdiChild属性:该属性用来表示当前活动的MDI子窗口,如果当前没有子窗口,则返回null。 IsMdiContainer属性:该属性用来获取或设置一个值,该值指示窗体是否为多文档界面(MDI)子窗体的容器,即MDI父窗体。 MdiChildren属性:该属性以窗体数组形式返回MDI子窗体,每个数组元素对应一个MDI子窗体。
10
二、项目知识准备——多文档界面(MDI)应用程序设计
IsMdiChild属性:该属性用来获取一个值,该值指示该窗体是否为多文档界面(MDI)的子窗体。 MdiParent属性:该属性用来指定该子窗体的MDI父窗体。 (2)方法 一般只使用父窗体的LayoutMdi方法,该方法的调用格式如下: MDI父窗体名.LayoutMdi(Value); (3)事件 常用的MDI父窗体的事件是MdiChildActivate,当激活或关闭一个MDI子窗体时将发生该事件。
11
二、项目知识准备——多文档界面(MDI)应用程序设计
3.菜单合并 父窗体和子窗体可以使用不同的菜单,这些菜单会在选择子窗体的时候合并。如果需要指定菜单的合并方式,程序员可以设置每个菜单项的MergeOrder属性和MergeType属性。 (1)MergeOrder属性:该属性用来确定当两个菜单合并时菜单项出现的顺序,具有较低MergeOrder的菜单项会首先出现。 (2)MergeType属性:当合并的两个菜单的某些菜单项的MergeOrder属性值相等时,使用该属性可以控制这些菜单项的显示方式。
12
二、项目知识准备——多文档界面(MDI)应用程序设计
【例4-1】编写一个能够显示多个文本文件的多文档程序。程序设计时的MDI父窗口如图4-5所示,子窗口如图4-6所示。程序运行时的菜单如图4-7(a)和图4-7(b)所示。打开了多个文件后的程序运行界面分别如图4-7(c)和图4-7(d)所示。程序运行时【文件】→【打开】命令将弹出一个打开对话框让用户选择一个文件打开。打开文件后【文件】菜单中多个一项【关闭】,执行它将关闭当前打开的文件,执行【文件】→【退出】命令将退出应用程序。【窗口】菜单的前四项用来对子窗口进行相应的排列,【窗口】菜单中的【关闭所有子窗口】命令的作用是删除所有的子窗口,【窗口列表】用来列出打开的所有子窗体。
13
图4-5 父窗口设计界面 图4-6 子窗口设计界面
14
(b) (a) (d) (c) 图4-7 程序运行时的菜单
15
二、项目知识准备——工具栏设计 【例4-2】 为例4-1的简易文本编辑器添加一个工具栏,工具栏上具有【打开】和【保存】按钮,如图4-8所示。
【例4-2】 为例4-1的简易文本编辑器添加一个工具栏,工具栏上具有【打开】和【保存】按钮,如图4-8所示。 图4-8 加上工具栏后的简易文本编辑器
16
二、项目知识准备——状态栏设计 【例4-3】为例4-2的简易文本编辑器添加一个状态栏,使得程序的运行界面如图4-9所示。
图4-9 加上状态栏后的简易文本编辑器
17
二、项目知识准备——键盘事件处理 1.KeyPressEventArgs类的主要属性(KeyPress事件的一个参数类型)
(1)Handled属性:用来获取或设置一个值,该值指示是否处理过 KeyPress 事件。 (2)KeyChar属性:用来获取按下的键对应的字符,通常是该键的ASCII码。 2.KeyEventArgs类的主要属性(KeyUp和KeyDown事件的一个参数) (1)Alt属性:用来获取一个值,该值指示是否曾按下 Alt 键。 (2)Control属性:用来获取一个值,该值指示是否曾按下 Ctrl 键。
18
二、项目知识准备——键盘事件处理 (3)Shift属性:用来获取一个值,该值指示是否曾按下Shift键。
(4)Handled属性:用来获取或设置一个值,该值指示是否处理过此事件。 (5)KeyCode属性:以Keys枚举型值返回键盘键的键码,该属性不包含修改键(Alt、Control和Shift键)信息,用于测试指定的键盘键。 (6)KeyData属性:以Keys枚举类型值返回键盘键的键码,并包含修改键信息,用于判断关于按下键盘键的所有信息。 (7)KeyValue属性:以整数形式返回键码,而不是Keys枚举类型值。用于获得所按下键盘键的数字表示。 (8)Modifiers属性:以Keys枚举类型值返回所有按下的修改键(Alt、Control和Shift键),仅用于判断修改键信息。
19
二、项目知识准备——键盘事件处理 【例4-4】编写一个程序用来演示键盘事件,程序运行时在一个标签上显示按下的键,在另一个标签上显示修改键信息。程序的运行界面分别如图4-10~图4-13所示。
20
图4-10 按下了K 图4-11 按下了回车键 图4-12 按下了Shift+K 图4-13 按下了Ctrl+”
21
二、项目知识准备——鼠标事件处理 (1)MouseEnter事件 该事件在鼠标指针进入控件时发生。 (2)MouseMove事件
该事件在鼠标指针移到控件上时发生。 Button属性:用来获取曾按下的是哪个鼠标按钮。 Clicks属性:用来获取按下并释放鼠标按钮的次数。 Delta属性:用来获取鼠标轮已转动的制动器数的有符号计数。 X属性:用来获取鼠标所在位置的 x 坐标。 Y属性:用来获取鼠标所在位置的 y 坐标。
22
二、项目知识准备——鼠标事件处理 (3)MouseHover事件 当鼠标指针悬停在控件上时将发生该事件。 (4)MouseDown事件
当鼠标指针位于控件上并按下鼠标键时将发生该事件。 (5)MouseWheel事件 在移动鼠标轮并且控件有焦点时将发生该事件。 (6)MouseUp 事件 当鼠标指针在控件上并释放鼠标键时将发生该事件。 (7)MouseLeave事件 在鼠标指针离开控件时将发生该事件。
23
二、项目知识准备——Messagebox.show()
【函数】 <整型> MessageBox(<字符串 Text, <字符串> Title, <整型> nType,MessageBoxIcon); 【函数说明】 弹出一个消息框。 【语法】 参数: Text <字符串>,消息框的正文; Title <字符串>,消息框的标题; nType <整型>,消息框的类型。 返回值:<整型>,用户在消息框上点击关闭时的选择的按钮。 MessageBoxIcon:对话框上显示的图标样式。
24
三、项目实践 实例一:输入对话框的设计 【题目要求】:设计一个输入数据的对话框。该程序有两个窗体,名为Form1和InputBox,它们的设计界面分别如图4-14和图4-15所示。程序运行时单出【显示对话框】按钮将显示如图4-16所示的对话框,在其中的文本框中输入数据后按【确定】按钮,输入的数据将显示出来,如图4-17所示。
25
图4-14 Form1窗体设计界面 图4-15 输入对话框设计界面 图4-16 输入对话框运行界面 图4-17 Form窗体运行界面
26
四、拓展训练 练习一:图像浏览器的制作 【题目要求】:制作一个能够同时打开多个图片文件的多文档应用程序。子窗体的设计界面如图4-18所示,在该窗体上添加了一个图片框控件,用来显示图片。程序某时刻的运行界面如图4-19所示。
27
图4-18 显示图片的子窗口 图4-19 程序某时刻的运行界面
Similar presentations