窗体应用程序.doc

上传人:sk****8 文档编号:3159470 上传时间:2019-05-23 格式:DOC 页数:34 大小:1.25MB
下载 相关 举报
窗体应用程序.doc_第1页
第1页 / 共34页
窗体应用程序.doc_第2页
第2页 / 共34页
窗体应用程序.doc_第3页
第3页 / 共34页
窗体应用程序.doc_第4页
第4页 / 共34页
窗体应用程序.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、窗体应用程序就是 Windows 窗体应用程序,从本章开始将详细介绍 Windows 窗体应用程序的相关知识。窗体是一个窗口或对话框,是存放各种控件的容器,可用来向用户显示信息。C#中提供了许多 Windows 窗体控件。例如 Label 控件、TextBox 控件、RichTextBox 控件、Button 控件和 CheckBox 控件等等。它们的作用一目了然,本章将详细介绍这些控件。本章学习要点: 掌握 Windows 窗体的两种类型 理解 Windows 窗体控件的概念 掌握显示信息控件 Label 和 LinkLabel 的使用 理解 TextBox、MashedTextBox 和

2、RichTextBox 控件的区别 掌握按钮类控件的使用 掌握 ImageList 控件、PictureBox 控件以及 Timer 控件的使用 掌握列表类控件的使用 理解 Panel 控件和 GroupBox 控件的用法 掌握 TabControl 控件并能够熟练地进行操作10.1 Windows 窗体控件概述在 C#中,窗体主要分为两种类型: 普通窗体 又称单文档窗体,它又可以分为模式窗体和无模式窗体。本节介绍的窗体都属于普通窗体 MDI 父窗体 又称多文档窗体,其中可以放置普通子窗体Windows 窗体控件是用户可与之交互以便输入或操作数据的对象。通常情况下,向窗体上添加控件,可以生成窗

3、体应用程序。Windows 窗体提供了许多控件和组件,大多数的控件都派生于 Control 类。它们都有自己的属性、方法和事件,便于控件适合于特定的用途。窗体控件主要包括基本控件、按钮类控件、图形图像控件、列表类控件以及容器类控件等。因为 Control 类定义了控件的基本功能,所以许多属性和事件都相同。表 10-1 列出了大多数控件共有的常见属性。表 10-2 列出了控件共有的常见事件。下面各节中控件的这些属性和事件不再一一列出。表 10-1 多数控件共有的常用属性属性名 说明Name 用来标识控件的名称Text 获取或设置控件上的文本Size 控件的大小(以像素为单位)Location 控

4、件左上角相对于其容器左上角的坐标Font 用于显示控件中文本的字体BackColor 控件或组件的背景色ForeColor 控件或组件的前景色,用于显示文本Cursor 指针移过该控件时显示的光标Enabled 指示是否启用该控件,默认为 TrueVisible 确定控件是可见的还是隐藏的,默认为 True表 10-2 多数控件共有的常用事件事件名 说明Click 单击组件时触发该事件MouseUp 在鼠标指针在组件上方并释放鼠标按钮时发生MouseMove 鼠标指针移过组件时发生MouseLeave 在鼠标离开控件的可见部分时发生Validated 在成功验证控件后发生Validating

5、在控件验证时发生VisibleChanged 在更改控件的可见性时发生表 10-1 和 10-2 分别列出了大多数控件常用的属性和事件,除了上面列出的之外,还有其他共有的属性和事件。这里不再一一介绍 。10.2 基本控件基本控件包括显示信息(标签)控件和文本框控件。其中显示信息控件又包括 Label控件和 LinkLabel 控件;文本框控件主要指 TextBox 控件、MaskedTextBox 控件和 RichTextBox 控件。下面详细介绍这些控件的相关知识。10.2.1 Label 控件.NET Framework 只包含两个标签控件:Label 控件和 LinkLabel 控件。L

6、abel 控件主要用于显示用户不能编辑的文本或图像。用户常常使用它对窗体上的其他各种控件进行说明或标注,例如“用户名” 、 “用户密码”和“出生日期”等。它是窗体应用程序最常用的控件之一。Label 控件最常用的属性如表 10-3 所示。表 10-3 Label 控件的常用属性属性名 说明TextAlign 确定文本控件的显示位置Image 设置要在控件上显示的图像Font 设置控件中文本的字体AutoSize 是否根据字号自动调整大小,只对文本不换行的控件有效BorderStyle 用于设置控件边框的样式ImageAlign 设置显示图像在控件的什么位置如果想要将 Label 控件的背景 设

7、置为透明的,只要将该控件的BackColor 属性设置为 Color.Transparent 即可。10.2.2 LinkLabel 控件LinkLabel 控件可以向 Windows 窗体应用程序添加 Web 样式的链接。一切可以使用 Label 控件的地方,都可以使用 LinkLabel 控件。该控件还可以将文本的一部分设置为指向某个对象或 Web 页的链接。LinkLabel 控件除了具有 Label 控件的所有属性、方法和事件以外,还有针对超链接的属性和事件。LinkLabel 控件的特有属性如表 10-4 所示。表 10-4 LinkLabel 控件的特有属性属性名 说明LinkAr

8、ea 设置激活链接的文本区域LinkBehavior 确定该超链接的下划线行为,默认值为 SystemDefaultLinkColor 设置超链接处于默认状态时的颜色LinkVisited 确定超链接是否应按已访问的样式呈现,默认为 FalseVisitedLinkColor 确定当 LinkVisited 属性设置为 True 时超链接的颜色ActiveLinkColor 确定当用户单击超链接的颜色DisabledLinkColor 确定当超链接被禁用时的颜色与 Lable 控件相比,LinkLabel 控件还多了一个常用的 LinkClicked 事件。该事件确定选择链接文本后将发生的操作

9、。10.2.3 TextBox 控件TextBox 控件用于获取用户输入的信息或向用户显示文本。通常用于可编辑文本,不过也可使其成为只读控件。例如,在“用户名”和“用户密码”等标签后面就是文本框。TextBox 控件可以显示多行,对文本换行使其符合控件的大小以及添加基本的格式设置。它为在该控件中显示的或输入的文本提供单个格式化样式。和 Label 控件、LinkLabel 控件一样, TextBox 控件也包括多个属性和事件,如表 10-5列出了 TextBox 控件常用的属性。表 10-5 TextBox 控件的常用属性属性名 说明Multiline 控制编辑控件的文本是否能够跨越多行Scr

10、ollBars 如果 Multiline 设置为 True,指示该控件显示哪些滚动条。默认为 NoneWordWrap 如果 Mulitiline 设置为 True,指示控件是否自动换行ReadOnly 设置文本框是否是只读AcceptsReturn 多行编辑控件中是否允许输入回车符AccpetsTab 确定是否接受制表符作为多行编辑控件的输入MaxLength 限制在 TextBox 控件中输入的最大字符数量UseSystemPasswordChar 指示控件中的文本是否以默认的密码字符显示,默认为 FalsePasswordChar 指示密码输入显示的字符CausesValidation

11、如果该属性设置为 True,且该控件获得焦点时,会触发 Validating 事件和Validated 事件。验证失去焦点的控件中数据的有效性CharacterCasing 指定是否会改变输入的大小写。该值有 3 个:Normal(默认) 、Upper 和 Lower10.2.4 MaskedTextBox 控件MaskedTextBox 控件是一个增强的 TextBox 控件,它支持用于接受或拒绝用户输入的声明性语法。通过使用 Mask 属性,不需要在应用程序中编写任何的验证逻辑。从指定的列表中选择预定义的掩码说明,或者选择“自定义”定义一个自定义掩码,即可指定下面的输入: 可选和必需的输入

12、字符 应该直接出现在 MaskedTextBox 中的字符,或者说掩码的原义字符 掩码中给定位置所需要的输入类型,例如只允许输入字母或数字 输入字符的处理,例如字符的大小写转换当 MaskedTextBox 控件运行显示时,会将掩码表示为一系列提示字符和可选的原义字符,表示一个必需或可选输入的每个可编辑掩码位置都显示为单个提示字符。MaskedTextBox 控件的常用属性如表 10-6 所示。表 10-6 MaskedTextBox 控件的常用属性属性名 说明Mask 设置控件此控件允许的输入的字符串PromptChar 指定自定义提示字符HidePromptOnLeave 当控件失去输入焦

13、点时用户能否看到提示字符,默认为 FalseHideSelection 当编辑控件失去焦点时,应隐藏选定内容TextMaskFormat 指示在从 Text 属性中返回字符串时是否包含原义字符和(或)提示字符【实践案例 10-1】例如,使用 MaskedTextBox 控件要实现的功能是:在文本框输入内容时,有一个掩码的原义字符“-” ,当用户输入一定的字符后就会自动跳到原义字符“- ”的后面。具体步骤如下:(1)在应用程序中添加名称为 MaskedTextBoxForm 的窗体,打开窗体的【属性】窗格,设置窗体的 Name 属性和 Text 属性。(2)从【工具箱】中添加 4 个 Label

14、 控件和 4 个 MaskedTextBox 控件,分别表示邮政编码、出生日期、联系电话和身份证号。(3)打开 MaskedTextBox 控件的【属性】窗格,找到 Mask 属性,打开【输入掩码】的对话框,分别为 4 个 MaskedTextBox 控件设置掩码。(4)启动该程序,运行效果分别如图 10-1、图 10-2 所示。图 10-1 程序设置掩码效果图 图 10-2 程序输入内容后效果图10.2.5 RichTextBox 控件RichTextBox 控件用于显示、输入和操作格式文本,它是一个可编辑控件,又称为富文本控件。RichTextBox 控件除了做 TextBox 控件所做的

15、每件事外,还可以显示字体、颜色和连接,从文件加载文本和加载嵌入图像,以及查找指定的字符串。RichTextBox 控件的功能非常强大,可以将文本直接分配给 RichTextBox 控件,也可以为控件内的文本分配字符和段落格式设置。另外,RichTextBox 控件还可以打开、编辑和存储.rtf 格式的文件、ASCII 文本格式文件及 Unicode 编码格式的文件。表 10-7 列出了该控件的常用属性。表 10-7 RichTextBox 控件的常用属性属性名 说明CanFocus 获取一个值,该值指示控件是否可以接收焦点CanRedo 如果某个任务还没有完成,该属性的值为 True,否则为

16、FalseCanUndo 获取一个值,该值指示用户在文本框控件中能否撤销前一操作SelectionIndent 应用到当前选定文本或插入点的左边的当前缩进距离SelectionRightIndent 该控件右边缘与选中文本或当前插入点添加的文本的右边缘之间的距离SelectedText 获取或设置 RichTextBox 控件内的选定文本SelectionFont 获取或设置当前选定文本或插入点的字体SelectionColor 获取或设置当前选定文本或插入点的文本颜色TextBox 控件常用于从用 户处获取短文本字符串,而 RichTextBox 控件通常用于提供类似字处理程序(如文本中有黑

17、体、斜体和下划 线等)的文本操作和显示功能。【实践案例 10-2】例如,当用户输入个人介绍后,单击不同的按钮分别达到字体加粗、字体变色以及字体缩进的效果。具体步骤如下:(1)在应用程序中添加名称为 RichTextBoxForm 的窗体,然后打开 【属性】窗格,分别设置该窗体的 Name 属性和 Text 属性。(2)向窗体中添加 1 个 Label 控件、1 个 RichTextBox 控件和 3 个 Button 控件。使其设计效果如图 10-3 所示。图 10-3 案例 10-2 的设计效果(3)单击不同的按钮,触发按钮的 Click 事件,实现字体加粗、字体设置为红色以及实现缩进的效果

18、。代码如下:private void btnBlod_Click(object sender, EventArgs e) /单击“设置粗体”按钮if (string.IsNullOrEmpty(rtbInfoMessage.SelectedText)MessageBox.Show(“请选择您要加粗的字体“);elsethis.rtbInfoMessage.SelectionFont = new Font(rtbInfoMessage.SelectionFont, FontStyle.Bold);private void btnBlue_Click(object sender, EventArg

19、s e) /单击“设置红色”按钮if (string.IsNullOrEmpty(rtbInfoMessage.SelectedText)MessageBox.Show(“请选择您要变色的字体“);elsethis.rtbInfoMessage.SelectionColor = Color.Red;private void btnSuo_Click(object sender, EventArgs e) /单击“缩进距离”按钮rtbInfoMessage.SelectionIndent = 10; 上述代码中,首先判断用户选中的字体是否为空。然后分别使用 RichTextBox 控件的Sele

20、ctionFont 属性、 SelectionColor 属性和 SelectionIndent 属性设置字体为粗体、红色,且缩进距离为 10。(4)运行本程序的代码,初始效果如图 10-4 所示。选中输入的字体,然后分别单击不同的按钮,最终效果如图 10-5 所示。图 10-4 程序初始时的运行效果 图 10-5 单击按钮后的运行效果10.3 按钮类控件在 C#应用程序中,按钮也是经常使用到的。例如,选择性别的单选按钮、选择爱好的复选框按钮以及单击确定和关闭的按钮等等。上节案例用户已经简单的了解过 Button 控件,本节就来详细介绍这些按钮类的控件。10.3.1 Button 控件Butt

21、on 控件表示为简单的按钮,派生于 ButtonBase 类。它通常呈现为一个矩形按钮,允许用户通过单击来执行某些操作。Button 控件主要执行以下任务: 打开另一个对话框或应用程序 用某种状态关闭对话框(例如 OK 按钮) 在对话框输入数据后执行某些操作Button 控件也有自己的属性和事件,它常用的属性如表 10-8 所示。表 10-8 Button 控件的常用属性属性名 说明Image 该属性用于在控件上显示的图像ImageAlign 该属性用于设置控件上的图像显示在什么地方ImageIndex 在控件上显示的 ImageList 中的图像的索引DialogResult 通过单击按钮在

22、模式窗体中产生的对话框结果FlatStyle 确定当用户将鼠标移动到控件上并单击时该控件的外观表 10-8 中,FlatStyle 属性可以控制按钮控件的外观,FlatStyle 是一个枚举类型,它有4 表枚举值。具体说明如下所示: Standard 默认值,设置控件外观为三维 Flat 该控件以平面显示 Popup 该控件以平面显示,直到鼠标指针移动到该控件为止,此时其外观为三维 System 该控件的外观是由用户的操作系统决定的Button 控件最常用的事件是 Click 事件。当鼠标指向该按钮时,按下鼠标左键然后再释放它,就会触发 Click 事件;如果按钮得到焦点,并且用户按下了回车键

23、时也会触发该事件。10.3.2 RadioButton 控件RadioButton 控件是一个单选按钮,一般用作一个组,也称为选项按钮。它和 Button按钮一样,派生于 ButtonBase 类。RadioButton 按钮表示从多个可选项中选择一项操作,即只允许用户从几个选项中选择一个答案。例如,选择用户性别时, “男”和“女”就是单选按钮。用户可以使用分组框或面板把一组单选按钮组合起来,确保只有一个单选按钮能被选中。RadioButton 控件常用的属性如表 10-9 所示。表 10-9 RadioButton 控件的常用属性属性名 说明Checked 表示该控件是否已经选中,默认为 F

24、alseCheckAlign 获取或设置 RadioButton 控件的复选框部分的位置AutoCheck 单击控件时,Checked 的值和外观是否自动更改,默认为 TrueAppearance 控制此控件是按通常情况显示还是显示为 Windows PushButton。默认为 NormalFlatStyle 确定当用户将鼠标移动到控件上并单击时该控件的外观如果 AutoCheck 属性设置为 True,当选择单选按钮时,将自动清除该组中的所有其他单选按钮。通常当使用验证代码确保选定的单选按钮是允许的选项时,才将其属性设置为False。RadioButton 控件最常用的事件是 Checke

25、dChanged 事件和 Click 事件。当 RadioButton控件的 Checked 属性值更改时,将会触发该事件。如果 GroupBox 或窗体有多个 RadioButton 控件,这个事件会被触发两次。每次单击 RadioButton 控件,就会引发 Click 事件。Click 事件和 CheckedChanged 事件有所不同,连续单击 RadioButton 控件,每次都能引发 Click 事件,但是不会引发 CheckChanged 事件。【实践案例 10-3】每次考试时,总会有单选题的出现,本节实例就模拟实现单项选择的效果。具体步骤如下所示:(1)在应用程序中添加名称为

26、RadioButtonForm 的窗体,打开窗体的【属性】窗格,设置 Name 属性和 Text 属性。(2)从【工具箱】中向该窗体添加 2 个 Label 控件、4 个 RadioButton 控件和 1 个 RadioButton 控件。其设计效果如图 10-6 所示。用户可以根据相应的控件进行布局。图 10-6 实践案例 10-3 运行效果(3)当用户单击 4 个 RadioButton 控件时,触发 CheckedChanged 事件,获取用户选中的结果。具体代码如下:private void radioButton1_CheckedChanged(object sender, Eve

27、ntArgs e)label2.ForeColor = Color.Black;foreach (Control control in this.Controls)if (control is RadioButton)if (RadioButton)control).Checked)label2.Text = “您的答案是:“+(RadioButton)control).Text;(4)当用户单击“提交”按钮时,触发按钮的 Click 事件。判断用户选中的结果是否正确,使用 Label 控件的 ForeColor 属性设置字体样式。具体代码如下:private void button1_Cli

28、ck(object sender, EventArgs e)label2.ForeColor = Color.Red;if (radioButton2.Checked)label2.Text = “恭喜您,回答正确“;elselabel2.Text = “对不起,回答错误“;(5)运行本实例的代码,选中单选按钮的效果如图 10-7 所示。单击“提交”按钮的效果如图 10-8 所示。图 10-7 选中单选按钮的运行效果 图 10-8 单击提交按钮的运行效果4 个 RadioButton 控件都触发同一个事件,打开控件的【属性】窗格,查看事件,找到 CheckChange 事件,单击该事件后面的小

29、图标,选择radioButton1_CheckedChanged 事件即可。10.3.3 CheckBox 控件CheckBox 控件表示复选框,用来表示某个选项是否被选中,常用于为用户提供是/否或真/ 假的选项。例如,用户可以选择多个爱好,这些爱好可以使用 CheckBox 控件。它和RadioButton 控件的相同处在于都是表示用户的选项;而不同之处在于 RadioButton 控件一次只能选择一个单选按钮,CheckBox 控件则表示可以选择任何的数量。CheckBox 控件常用的属性如表 10-10 所示。表 10-10 RadioButton 控件的常用属性属性名 说明Checke

30、d 表示该控件是否已经选中,默认为 FalseCheckAlign 获取或设置 RadioButton 控件的复选框部分的位置AutoCheck 单击控件时,Checked 的值和外观是否自动更改,默认为 TrueCheckState 获取或设置 CheckBox 的状态,默认为 UncheckedThreeState 指示 CheckBox 是否会允许三种选中状态,而不是两种状态CheckState 属性的返回值是 Checked 和 Unchecked;如果 ThreeState 属性被设置为 True,则 CheckState 还可能返回 Indeterminate。【实践案例 10-4

31、】例如,本案例模拟实现用户多项选择的效果,具体步骤如下:(1)创建名称为 CheckBoxForm 的窗体,设置窗体的 Name 属性和 Text 属性。(2)从【工具箱】中向该窗体添加 2 个 Label 控件、4 个 CheckBox 控件和 1 个 Button 控件,设计效果如图 10-9 所示。用户可以根据相应的控件进行布局。图 10-9 CheckBox 控件的设计效果(3)单击 4 个 CheckBox 控件时,触发控件的 CheckedChanged 的事件,动态的显示用户选择的信息。该事件的代码如下所示:private void ckbLiu_CheckedChanged(o

32、bject sender, EventArgs e)label2.Text = “您的答案是:“;if (ckbLiu.Checked)label2.Text += ckbLiu.Text + “ “;/* 省略其它 CheckBox 选中的情况 */if (!ckbLiu.Checked)label2.Text.Replace(ckbLiu.Text, “);/* 省略其它 CheckBox 未被选中的情况 */(4)单击“提交”按钮时,触发按钮的 Click 事件,判断用户提交的信息是否正确。其中 Contains()方法判断 Label 控件中是否包含某个字符串。具体代码如下所示:pri

33、vate void btnSure_Click(object sender, EventArgs e)if (!ckbLiu.Checked else if (label2.Text.Contains(“周恩来“) elselabel2.Text = “对不起,回答错误“;(5)运行本实例的代码,选中复选框的效果如图 10-10 所示。单击“提交”按钮的运行效果如图 10-11 所示。图 10-10 选中复选框时的运行效果 图 10-11 单击提交按钮的运行效果10.3.4 NotifyIcon 控件NotifyIcon 控件指定通知区域中创建图标,通知区域中的图标是一些进程的快捷方式,这些进程在计算机后台运行。例如,QQ 应用程序在后台运行。NofityIcon 控件有多个属性,常见的属性如下所示: BalloonTipIcon 与气球状工具提示关联的图标。它的值有 4 个,分别是None(默认值) 、Info 、Warnning 和 Error BalloonTipText 与气球状工具提示关联的文本 BalloonTipTitle 与气球状工具提示关联的标题

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 建筑建材

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。