版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、版权所有,1,第三章 GUI程序设计,GUI(Graphics User Interface),即图形用户界面,是指用图形的方式实现人与计算机之间的交互。,2,版权所有,目录,GUI程序设计方法 窗体 对话框 标签、文本框和按钮 菜单和多文档界面 工具栏和状态栏 单选钮、复选钮、组和面板 列表框、组合框和复选列表框,3,版权所有,3.1 GUI程序设计方法,3.1.1 GUI程序模型,4,版权所有,3.1.2 建立GUI应用程序的一般步骤 利用C#编写GUI应用程序的一般步骤: (1)建立“Windows应用程序”项目 (2)设计应用程序界面 (3)设置窗口和控件的属性 (4)编写事件方法代码
2、,5,版权所有,3.1.3 控件的基本属性 下面介绍的一些属性是多数控件都具有的属性: (1)Name:用来获取或设置控件的名称。名称是控件的标识。 (2)Text:用来获取或设置控件的标题文字。 (3)Width和Height:用来获取或设置控件的大小。 (4)Left和Top:用来获取或设置控件的位置。 (5)Visible:用来获取或设置控件是否可见。取值为true或false。 (6)Enabled:用来获取或设置控件是否对响应交互。取值为true或false。 (7)ForeColor:用来获取或设置控件的前景色。 (8)BackColor:用来获取或设置控件的背景色。,6,版权所有
3、,(9)Font:用来获取或设置控件的字体。 (10)BorderStyle:用来获取或设置控件的边框。 (11)AutoSize:用来获取或设置控件是否自动调整大小。取值为true或false。 (12)Anchor:获取或设置控件的哪些边缘锚定到其容器边缘。 (13)Dock:获取或设置控件停靠到父容器的哪一个边缘。 (14)TabIndex:用来获取或设置控件的Tab键顺序。 (15)TextAlign:用来确定文本对齐方式。 (16)Cursor:用来获取或设置鼠标移到控件上时,被显示的鼠标指针的类型。,7,版权所有,【案例3-1】图片的显示和隐藏。 在窗体上放置一个图片框、一个“显示
4、”按钮和一个“隐藏”按钮。开始运行时,图片不可见,“显示“按钮可用,“隐藏”按钮不可用。单击“显示”按钮后,图片显示出来,“显示”按钮变成不可用,而“隐藏”按钮变成可用。,8,版权所有,3.1.4 事件和事件处理 1事件处理模型 在C#中,Windows窗体应用程序中的事件处理是通过委托来实现的。在.NET框架中,Delegate类用于生成事件处理机制。一个委托由对对象的引用以及对该对象内部一个或多个方法的引用组成的。在委托事件模型中,“委托”实际上是将事件和处理事件的方法绑定到一起。委托可以将一个事件绑定到单个方法或多个方法;也允许将多个事件绑定到一个方法。,9,版权所有,事件处理程序是绑定
5、到事件的方法。当引发事件时,执行事件处理程序内的代码。每个事件处理程序提供两个使您得以正确处理事件的参数。如下为Button 控件的 Click 事件的事件处理程序: private void button1_Clicked(object sender,System.EventArgs e) 第一个参数 sender 提供对引发事件的对象的引用。第二个参数e传递针对要处理的事件的对象。通过引用对象的属性(有时引用其方法)可获得一些信息,如鼠标事件中鼠标的位置或拖放事件中传输的数据。,10,版权所有,2键盘事件 当用户对键盘进行操作时,系统会产生相应的键盘事件。当用户按下某个键时,就会发生Key
6、Down事件,随后便发生KeyPress事件。而当用户释放某个键时,发生KeyUp事件。当用户按住某个键不放时,KeyDown和KeyPress事件会不停地重复触发。表3-2列出了这些键盘事件的含义与说明。,11,版权所有,12,版权所有,3鼠标事件 鼠标是一种定位输入设备,通常有两个或三个按钮(左、中和右按钮),还可能有滚轮。它的基本操作方式主要有:单击、双击和滚动。,13,版权所有,14,版权所有,【案例3-2】利用鼠标和键盘控制图片显示。 窗体上用图片框显示一张图片。当在图片框上单击鼠标左键时图片放大10%,单击鼠标右键时图片缩小10%。若转动滚轮,则图片根据前后方向垂直移动,移动步长为
7、12。鼠标在图片框上移动时,窗体标题显示当前位置坐标,鼠标在图片框上悬停时,显示提示信息“单击左键放大图片,单击右键缩小图片,用光标移动图片”。鼠标离开图片框时,显示“利用鼠标和键盘控制图片显示”。按下各方向键时,图片按相应的方向移动;当按ESC键时,窗体关闭,退出程序;当按下其他键时,在窗体标题上显示所按的键的名称。,15,版权所有,16,版权所有,3.2 窗体,3.2.1 窗体的创建 创建窗体可以有两种方法:一种是手动创建,即直接编写代码,一种是用项目模板来创建。无论怎样创建,都要用到.NET框架的System.Windows.Forms命名空间和System.Windows.Forms.
8、Form类。,17,版权所有,3.2.2 窗体的属性和方法 窗体的属性决定了窗体的外观和操作。下面是窗体的一些主要属性: (1)Text:用来指定窗体的标题内容。 (2)Size和StartPosition:用来指定窗体显示的大小和位置。 (3)ForeColor:用来更改窗体内所有控件默认前景色。 (4)FormBorderStyle:用来指定窗体的边框类型。 (5)MinimizeBox和MaximinzeBox:指定窗体是否显示最小化、最大化按钮。 (6)TopMost:用来指定窗体是否应显示为应用程序的最顶层窗体。 (7)WindowState:用来指定窗体运行时的状态。 (8)Opa
9、city:用来指定窗体的不透明度级别(0.01.0)。 (9)Icon:用来指定窗体的图标。,18,版权所有,窗体的常用方法有: (1)Acitvate():激活窗体使其获得焦点。 (2)BringToFront()和SendToBack():将某个窗体置于Z顺序的前面(或后面)。 (3)Close():关闭窗体。 (4)Contains():判断指定控件是否为窗体的子控件。 (5)GetChildAtPoint():检索位于指定位置处的子控件。 (6)GetNextControl():按照窗体上子控件的Tab顺序向前或向后检索下一个控件。 (7)Hide():隐藏窗体。 (8)Invalid
10、at():使窗体的特定区域无效并发送重新绘制消息。 (9)Refresh():强制控件使其工作区无效并立既重绘自己和任何子控件。 (10)ResetXXX():将XXX属性重置为其默认值。(11)Show()和ShowDialog():Show()和ShowDialog()都可以用来显示窗体。,19,版权所有,【案例3-3】启动界面。 本案例建立一个启动界面程序,运行效果如图3-4所示。当程序运行时,启动界面显示一幅图片,进度条自动开始走动,图片随进度条的走动渐渐显示清晰,进度条到头时,关闭该窗口,进入主窗口,,20,版权所有,21,版权所有,3.3 对话框,对话框是一种简单的窗口,主要用于向
11、用户显示提示信息或接受用户输入的信息。在C#提供了一些标准的对话框供用户使用。对话框与窗口的不同,主要是对话框可以处于模态状态。处于模态的对话框,要求用户必须作出响应,否则无法激活其他窗口。,22,版权所有,3.3.1 消息对话框 消息对话框是最简单的一类对话框,用来显示一些提示、警告等信息。在.NET框架中,使用MessageBox类来封装消息对话框,但它不能创建MessageBox实例,而只能调用其静态成员方法Show显示消息对话框 。,23,版权所有,例如,下面代码运行结果如图所示。 MessageBox.Show(你喜欢Visual C#.NET吗?);,24,版权所有,例如下面的代码
12、,其运行结果如图所示。 if(DialogResult.Yes=MessageBox.Show( 退出吗?, 提问, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1 ) Application.Exit(); ,25,版权所有,3.3.2 通用对话框 在Windows应用程序中,经常进行打开或保存文件、选择颜色或字体、打印文档等操作。.NET框架中System.Windows.Forms命名空间中为这些操作提供了一组标准用户界面对话框,它们称为“通用对话框”,并有相应的通用对话框
13、类支持,它们都是从一个公共的基类System.Windows.Forms.CommonDialog派生而来的。,26,版权所有,27,版权所有,3.3.3 自定义对话框 用户可以根据自己的需要创建对话框。自定义的对话框实际上也是窗体。作为对话框的窗体在外观上与一般的窗体在外观上是有所区别的,对话框没有控制菜单及最大化和最小化按钮,不能改变大小,多以模态方式显示,以防止用户在对话框外执行任务。,28,版权所有,3.4 标签、文本框和按钮,3.4.1 标签(Label) .NET框架中Label类封装了标签控件。标签用于显示用户不能编辑的文本或图像。 1标签的属性 (1)BackColor和Aut
14、oSize:通过将Label的BackColor属性设置为Color.Transparent,可使该标签成为透明的。使用透明标签时,请只使用当前设备坐标系在容器上绘制,否则就可能无法正确绘制 Label 背景。 Label 控件可为单行或多行,可以为固定大小,也可以自动调整自身大小以适应其标题。AutoSize 属性设为真时,标签自动调整大小以适应较大或较小的标题。如果将 AutoSize 设置为 false,则 Text 属性中指定的文字将切换到下一行(如果可能),但该控件不会增大。,29,版权所有,(2)Image:获取或设置显示在 Label 上的图像。 (3)ImageAlign:获取
15、或设置在控件中显示的图像的对齐方式。 (4)ImageIndex:获取或设置在 Label 上显示的图像的索引值。 (5)ImageList:获取或设置包含要在 Label 控件中显示的图像的 ImageList。 (6)UseMnemonic:获取或设置一个值,该值指示控件是否将控件的 Text 属性中的“and”符 ( (2)选择文本 选择文本一般用鼠标或键盘进行操作。如果用代码进行,可以使用文本框的从基类TextBaseBox继承的方法Select()或SelectAll()。Select()方法有两个参数分别确定要选择文本的起始位置和要选择文本的字符个数。也可以利用文本框的属性来选择文
16、本,SelectionStart、SelectionText、SelectionLength:,35,版权所有,(3)文本操作 添加文本使用AppendText()方法,清除文本使用Clear()方法,撤销文本的上一次操作用Undo()方法;从文本框的撤销缓冲区中清楚关于最近操作的信息使用ClearUndo()方法。 (4)限制文本输入 要限制某些文本不被输入到 TextBox 控件,可以为 KeyDown 事件创建一个事件处理程序,以便验证在控件中输入的每个字符。也可以通过将 ReadOnly 属性设置为 true 来限制 TextBox 控件中的所有数据项输入。 (5)获取多行文本框文本
17、通过Text属性可获得全部文本,不能单独获得某一行文本。要获得某一行文本,可使用Lines属性,Lines属性是一个字符串数组,它的每一个元素对应多行文本框的一行文本。,36,版权所有,3文本框的常用事件 (1)GotFocus事件:该事件在文本框接收焦点时发生。 (2)LostFocus事件:该事件在文本框失去焦点时发生。 (3)TextChanged事件:文本的Text属性的值改变时发生。,37,版权所有,【案例3-4】设计一个登录程序。 登录窗口是很多应用系统中不可缺少的组成部分。通过验证用户输入的用户名和密码,决定是否允许用户进入系统,可在一定程度上保证系统的安全。,38,版权所有,3
18、.5 菜单和多文档界面,3.5.1 菜单 Windows 窗体上的菜单是使用 MainMenu 对象创建的,该对象是一个 MenuItem 对象集合。可以在设计时向 Windows 窗体添加菜单,方法是添加 MainMenu 组件然后使用菜单设计器向其追加菜单项。还可以用编程方法添加菜单,方法是向 Windows 窗体添加一个或多个 MainMenu 对象并向该集合中添加 MenuItem 对象。,39,版权所有,1菜单的主要属性 (1)MainMenu的属性 MenuItems:获取一个值,通过该值指示与菜单关联的 MenuItem 对象的集合。通过集合类的通用操作方法Add、AddRang
19、e等可以用来添加菜单项。 RightToLeft:获取或设置控件显示的文本是否从右向左显示。 (2)MenuItem的主要属性 Checked:获取或设置一个值,通过该值指示选中标记是否出现在菜单项文本的旁边。 Index:获取或设置一个值,通过该值指示菜单项在其父菜单中的位置。 IsParent:获取一个值,通过该值指示菜单项是否包含子菜单项。 MenuItems:获取一个值,通过该值指示与菜单关联的 MenuItem 对象的集合。 MergeOrder:获取或设置一个值,通过该值指示菜单项与另一个项合并时的相对位置。,40,版权所有,MergeType:获取或设置一个值,通过该值指示该菜单
20、项的菜单与另一个菜单合并时该菜单项的行为。 Mnemonic:获取一个值,通过该值指示与此菜单项关联的助记字符。 MdiList:获取或设置一个值,通过该值指示是否使用在关联窗体内显示的多文档界面 (MDI) 子窗口列表来填充菜单项。 RadioCheck:获取或设置一个值,通过该值指示 MenuItem(如果已选中)是否显示单选按钮而不是选中标记。 Shortcut:获取或设置一个值,通过该值指示与菜单项关联的快捷键。 ShowShortcut:获取或设置一个值,通过该值指示与菜单项关联的快捷键是否在菜单项标题的旁边显示。 Text:获取或设置一个值,通过该值指示菜单项标题。 Visible
21、:获取或设置一个值,通过该值指示菜单项是否可见。,41,版权所有,2菜单的事件 在菜单类Menu、MainMenu和MenuItem中,只有MenuItem类具有事件。常用的事件有Click、Popup和Select。 (1)Click事件。当单击菜单项或使用为该菜单项定义的快捷键或访问键选择菜单项时发生。 (2)Popup事件。在显示菜单项的菜单项列表之前发生。 (3)Select事件。当用户将光标放在菜单项上时发生。,42,版权所有,3使用菜单设计器创建菜单的一般步骤 (1)在设计时向 Windows 窗体添加菜单。 (2)添加菜单项。 (3)修改和删除菜单项。 (4)添加分隔符和快捷键。
22、 (5) 为菜单项的Click事件添加代码。,43,版权所有,3.5.2 多文档界面 1多文档界面的特性 所有子窗体均显示在MDI父窗体的工作区中。用户可以改变子窗体大小或移动子窗体,但被限制在MDI父窗体中。 当最小化MDI子窗体时,它的图标将显示于MDI父窗体上而不是在任务栏中。当最小化MDI父窗体时,所有的子窗体也被最小化,只有MDI父窗体的图标出现在任务栏。 当最大化一个MDI子窗体时,它的标题与MDI父窗体的标题一起显示在MDI父窗体的标题栏上。 MDI父窗体和MDI子窗体都可以有自己的菜单,当子窗体被加载时,其上的菜单可以按指定的方式与父窗体的菜单合并。,44,版权所有,2与多文档
23、界面有关的属性、方法和事件 (1)常用的MDI父窗体的属性 ActiveMdiChild:表示当前活动的MDI子窗体。 IsMdiContainer:获取或设置窗体是否为MDI父窗体。 MdiChildren:以数组形式返回MDI子窗体。 (2)常用的MDI子窗体的属性: IsMdiChild:获取或设置窗体是否都为MDI子窗体。 MdiParent:指定子窗体的MDI父窗体。 (3)与多文档界面有关的方法和事件 与多文档界面有关的方法,主要是父窗体的LayoutMdi方法,该方法的调用格式如下: MDI父窗体名.LayoutMdi(Value);,45,版权所有,3菜单合并 父窗体和子窗体可
24、以使用不同的菜单,这些菜单会在打开子窗体时合并。可以通过设置MergeOrder属性和MergeType属性指定合并的方式。 (1)MergeOrder:用来确定当两个菜单合并时菜单项出现的顺序,具有较低MergeOrder的菜单项会首席出现。 (2)MergeType:当合并的两个菜单的某些菜单项的MergeOrder属性值相等时,使用该属性可以控制这些菜单项的显示方式。,46,版权所有,【案例3-5】文本文件显示程序。 本案例建立一个MDI应用程序,能够显示多个文本文件。程序运行时的菜单如图3-14(a)和图3-14(b)所示。打开了多个文件后的程序运行界面分别如图3-14(C)和图3-1
25、4(d)所示。程序运行时“文件”“打开”命令将弹出一个打开对话框让用户选择一个文件打开。打开文件后“文件”菜单中多一项“关闭”,如图3-14(C),执行它将关闭当前打开的文件,执行“文件”“退出”命令退出应用程序。“窗口”菜单的前四项用来对子菜窗口进行相应的排列,“窗口”菜单中的“关闭所有子窗口”命令用于关闭所有子窗口,“窗口列表”用来列出打开的所有子窗体,47,版权所有,3.6 工具栏和状态栏,在Windows窗体中,ToolBar类用来封装工具栏的外观和功能。 1常用的属性 (1)ToolBar的属性 (2)ToolBarButton的属性 2用设计器向窗体添加工具栏一般步骤,48,版权所
26、有,3.6.2 状态栏 通过将 ShowPanels 属性设置为 false(默认值)并将状态栏的 Text 属性设置为希望出现在状态栏中的文本,可在状态栏中显示一个消息。通过将 ShowPanels 属性设置为 true 并使用 StatusBarPanelCollection 类的 Add 方法,可将状态栏分割为多个面板以显示一种以上类型的信息。,49,版权所有,3.7组框和面板,3.7.1 组框(GroupBox) GroupBox 显示围绕一组控件的框架(带或不带标题)。使用 GroupBox 对窗体上的控件集合进行逻辑分组。组框是可用于定义控件组的容器控件。 组框的典型用途是作为包含
27、RadioButton控件的逻辑组。如果有两个组框,每个组框都包含多个单选按钮,每组按钮都互相排斥,则每组设置一个选项值。 通过使用Controls属性的Add方法,可将控件添加到 GroupBox。,50,版权所有,3.7.2 面板(Panel) Panel是一个包含其他控件的控件。可以使用 Panel 来组合控件的集合,例如一组 RadioButton 控件。与其他容器控件(如 GroupBox 控件)一样,如果 Panel 控件的 Enabled 属性设置为 false,则也会禁用包含在 Panel 中的控件。,51,版权所有,3.8 复选钮和单选钮,3.8.1复选钮(CheckBox)
28、 CheckBox可为用户提供一项选择,如“真/假”或“是/否”。复选钮控件可以显示一个图像或文本,或两者都显示。多个CheckBox控件构成一组选项时,可以进行多重选择,相互之间不影响。,52,版权所有,(1)复选钮的基本属性 Appearance:获取或设置确定复选框控件外观的值。如果将Appearance属性设置为Appearance.Button,则RadioButton 控件的外观可以像命令按钮一样。当选定它时,它看似已被按下。 Text:获取或设置与此控件关联的文本。 TextAlign:获取或设置与 CheckBox 控件关联的文本标签的对齐方式。 Image:获取或设置显示在按
29、钮控件上的图像。 ImageList:获取或设置包含按钮控件上显示的 Image 的 ImageList。 ImageIndex:获取或设置按钮控件上显示的图像的图像列表索引值。 Checked:获取或设置一个值,该值指示是否已选中控件。,53,版权所有,(2)复选钮的主要事件 CheckedChanged事件。当Checked 属性的值更改时发生。 CheckStateChanged事件。当CheckState 属性的值更改时发生。 Click事件。在单击控件时发生。,54,版权所有,3.8.2 单选按钮(RadioButton) RadioButton 和 CheckBox 控件的功能相似
30、:它们提供用户可以选择或清除的选项。不同之处在于,可以同时选定多个 CheckBox 控件,而单选按钮却是互相排斥的。,55,版权所有,(1)单选按钮的基本属性 Appearance:获取或设置确定单选按钮控件外观的值。如果将 Appearance 属性设置为 Appearance.Button,则 RadioButton 控件的外观可以像命令按钮一样。当选定它时,它看似已被按下 Text:获取或设置与此控件关联的文本。 TextAlign:获取或设置与 CheckBox 控件关联的文本标签的对齐方式。 Image:获取或设置显示在按钮控件上的图像。 ImageList:获取或设置包含按钮控件
31、上显示的 Image 的 ImageList。 ImageIndex:获取或设置按钮控件上显示的图像的图像列表索引值。 Checked:获取或设置一个值,该值指示是否已选中控件。,56,版权所有,(2)单选按钮的主要事件 CheckedChanged事件。当 Checked 属性的值更改时发生。 Click事件。在单击控件时发生。,57,版权所有,【案例3-6】单选钮和复选钮的使用。 本案例建立一个使用单选钮和复选钮的应用程序,界面上有一个文本框,两组单选钮和一组复选钮。两组单选钮分别用于设置文本框的字体和字号,一组复选钮用于设置文本框的字型。,58,版权所有,3.9列表框、组合框和复选列表框,3.9.1列表框(ListBox) ListBox 控件通过显示多个选择项,供用户选择其中一项或多项,达到与用户对话的目的。ListBox 控件可使用 SelectionMode 属性提供单项选择或多重选择。ListBox 还提供 MultiColumn 属性,以启用按多列显示项而不是项的垂直列表。这使控件得以显示更多可见项,并使用户不必滚动到某项。,59,版权所有,(1)列表框的主要属性 Items:获取或设置ListBox 的项。 MultiColumn:获取或设置一个值,该值指示 ListBox 是否支持多列。 ColumnWidth:获取或设置多列ListBo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冶金应急预案咨询价格(3篇)
- 人员遣散n应急预案(3篇)
- 东风轻型货车营销方案(3篇)
- pta粉尘爆炸应急预案(3篇)
- 1小时活动策划方案(3篇)
- 1-1-4-1-Terphenyl-2-3-3-5-5-5-hexacarboxylic-acid-3-2-3-5-5-5-Terphenylhexacarboxylic-acid-生命科学试剂-MCE
- 南京强化地板施工方案(3篇)
- 发光冲孔板施工方案(3篇)
- 园区道路组织施工方案(3篇)
- 地表隧道施工方案范本(3篇)
- 【昭通】2025年云南昭通市市直事业单位公开选调工作人员42人笔试历年典型考题及考点剖析附带答案详解
- 牛场绩效考核制度
- 产品研发与质量控制规范(标准版)
- 2026年电气制造公司样机试制管控管理制度
- 人与自然关系课件
- 高中数学建模竞赛试题及答案
- 2025北京语言大学出版社有限公司招聘5人笔试历年典型考点题库附带答案详解3套试卷
- 《中小学跨学科课程开发规范》
- DZ/T 0156-1995区域地质及矿区地质图清绘规程
- 2024-2025学年安徽省合肥市第五十中学天鹅湖校区上学期期中考试七年级数学试卷
- 如何培育战斗精神授课课件
评论
0/150
提交评论