版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第6章 Windows应用程序开发Windows应用程序是基于Microsoft Windows平台上一个经典可视化应用程序,尤其适合于包含丰富图形用户界面应用程序。Windows应用程序运行之后,往往显示一个或多个Windows窗体,含有友好交互功效。使用.NET Framwork和C#语言能够开发功效强大Windows窗体应用程序。第1页6.1 窗体在Windows窗体应用程序中,“窗体”是向用户显示信息可视界面,窗体包含可添加到窗体上各种控件。而“控件”是显示数据或接收输入数据相对独立用户界面(User Interface,UI)元素,如文本框、按钮、下拉框和单项选择按钮等。用户还能够使
2、用UserControl类自定义控件实现特殊功效。每个Windows窗体应用程序都最少拥有一个窗体,而且需要导入System.Windows.Forms命名空间。 第2页1窗体属性窗体属性决定了窗体外观和操作。大部分属性既能够在设计阶段经过属性窗口设置,也能够在程序运行时动态设置,少部分属性只能在设计阶段进行设置,或只能在运行期间设置。表6-1为窗体惯用属性。第3页表6-1 窗体惯用属性属 性描 述Name窗体名称Text窗体标题栏文本SizeWidthHeight获取或设置窗体大小,如this.Size =new Size(30,30)其中Size.Width等效于窗体Width属性值其中S
3、ize. Height等效于窗体Height属性值StartPositon窗体运行时在屏幕上显示初始位置WindowState 窗体运行时初始状态,只能在设计阶段经过属性窗口设置。Normal:正常窗口状态;Minimized:最小化状态;Maxmized最大化状态Icon窗体图标LocationXY设置窗体在屏幕上显示位置,如this.Location = new Point(500,50)横坐标值纵坐标值第4页Font窗体字体,如this.Font = new Font(宋体,9,FontStyle.Bold);ForeColorBackColor窗体上显示文字颜色,如this.ForeC
4、olor = Color.Red;窗体背景颜色BackgroundImage窗体背景图片BackgroundImageLayout窗体背景图片布局方式,Tile(平铺)、Center(居中)、Stretch(拉伸)、Zoom(缩放)Cursor鼠标光标在窗体中显示样式FormBorderStyle窗体边框样式,只能在设计阶段经过属性窗口设置Enable窗体是否可用第5页在设计阶段设置窗口属性:首先在窗体设计器中选中窗体,然后在属性窗口中单击“属性”按钮,查看属性窗口左侧栏,选择要修改窗体属性,在对应属性右侧栏中输入或选择属性值(有属性是枚举型)。如修改窗体Text属性为“窗体”,则在Text属
5、性对应右侧栏中输入“窗体”, 第6页2窗体事件当用户经过鼠标或键盘与窗体交互操作时,会产生各种事件。经过创建事件处理程序,用户能够实现各种处理功效。惯用事件如表6-2所表示。在属性窗口中,单击“事件”按钮能够查看窗体全部事件。第7页表6-2 窗体惯用事件事 件描 述Click鼠标触发事件,在单击窗体时发生DoubleClick鼠标触发事件,在双击窗体时发生MouseDown鼠标触发事件,按下任一鼠标键时发生MouseUp鼠标触发事件,释放任一鼠标键时发生MouseMove鼠标触发事件,鼠标移动时发生KeyPress键盘触发事件,按下并释放一个会产生ASCII码键时发生KeyDown键盘触发事件
6、,按下任一键时发生KeyUp键盘触发事件,释放任一键时发生第8页Load 在第一次显示窗体前发生,当应用程序开启时自动执行Load事件,所以该事件通惯用来在开启应用程序时初始化属性和变量Activated当使用代码激活或用户激活窗体时发生Resize在调整控件大小时发生FormClosing当用户关闭窗体时,在窗体已关闭并指定原因之前发生FormClosed当用户关闭窗体时,在窗体已关闭并指定原因之后发生第9页程序开启运行时,首先触发这些事件中Load事件。在编写应用程序时,通常把一些初始化工作放在Load事件中。在窗体设计器中,选中窗体(单击窗体空白处),单击窗体属性窗口“事件”按钮,然后双
7、击某一事件选项(如双击窗体Click事件,如图6.2所表示),系统就会在代码编辑窗口自动生成该事件框架, 第10页初学者不要在代码编辑窗口手动输入该框架,因为系统在代码编辑窗口自动生成框架同时,也在Form1.Designer.cs文件中加载了相关代码。程序员只需在Click事件框架基础上进行填写代码。代码加在一对花括号中间。第11页【例6-1】 单击窗体时,修改窗体Text属性为“触发窗体Click事件”。触发窗体单击事件前后标题改变。事件代码以下private void Form1_Click(object sender, EventArgs e) this.Text = 触发窗体Clic
8、k事件;/运行时设置窗体Text属性 第12页3窗体惯用方法在代码编辑器中输入一个对象名及“.”运算符后,会自动弹出一个下拉表框,显示出该对象能够使用属性、事件、方法,如图6.6所表示,图中close方法前面图标代表方法。在弹出下拉表框中经过鼠标(或经过键盘)选中某一方法后,按回车键,则该方法自动添加到代码编辑器中。表6-3列举了窗体惯用方法。第13页图6.6 窗体方法第14页表6-3 窗体惯用方法方 法描 述Activate( )激活窗体并赋予它焦点Close( )关闭并卸载窗体Hide( )隐藏窗体Show( )加载并显示非模态窗体ShowDialog( )加载并显示模态窗体Refresh
9、经过重绘更新窗体及其子控件外观BringToFront将窗体移动到其它窗体前面SendToBack( )将窗体移动到其它窗体后面SetBounds( )将窗体边界设置为指定位置和大小第15页6.2 Windows惯用控件使用Windows惯用控件有标签、按钮、文本框、单项选择按钮、复选按钮、列表框、组合框、分组框、面板、图片框等。第16页1为窗体添加控件通常使用窗体设计器向窗体中添加控件。首先在窗体设计器中打开要添加控件窗体(在处理方案资源管理器中双击对应窗体节点即可打开该窗体),然后打开工具箱窗口(面板)。可使用以下几个方法向窗体中添加控件: 双击工具箱中控件,将在窗体默认位置添加默认大小控
10、件。 在工具箱中选中一个控件,按住鼠标左键不放,这时鼠标指针变成该控件在工具箱中图标形状,把鼠标指针移到窗体对应位置,然后松开鼠标左键 第17页2调整控件控件添加到窗体中之后,能够对控件进行调整,包含其位置、大小、对齐方式等。要调整控件摆放,首先要选中窗体中控件(假如要选择多个控件时,能够先按下CTRL键或SHIFT键,同时用鼠标单击要选择其它控件;或者按下鼠标左键拖动鼠标,选择一个范围,该范围内控件均被选中),然后经过格式菜单或工具栏上格式按钮进行调整。如图6.8所表示为调整窗体中全部控件左对齐。第18页图6.8 调整控件左对齐 第19页3设置控件Tab键次序控件Tab键次序决定了当用户使用
11、Tab键切换焦点时次序。默认情况下,控件Tab键次序就是控件添加到窗体次序。能够使用“视图”“Tab键次序”菜单项把窗体设计器切换到Tab键次序选择模式,再次使用该命令将切换回设计模式,如图6.9所表示。另外,也能够经过在属性窗口中设置控件TabIndex属性来改变它们Tab键次序。第20页 图6.9 显示控件Tab键次序 第21页4惯用控件属性属 性描 述Anchor设置控件哪个边缘锚定到其容器边缘Dock设置控件停靠到父容器哪个边缘Name设置或获取控件名称Text设置或获取与此控件关联文本SizeWidthHeight设置或获取控件大小,如textBox1.Size =new Size(
12、30,30)其中Size.Width等效于控件Width属性值其中Size. Height等效于控件Height属性值Parent设置或获取控件父容器LocationXY设置控件在其容器中显示位置,如textBox1.Location = new Point(500,50)设置或获取控件左边界到容器左边界距离设置或获取控件顶部到容器顶部距离第22页Font设置或获取控件显示文字字体,如textBox1.Font = new Font(宋体,9,FontStyle.Bold);ForeColorBackColor设置或获取控件前景颜色设置或获取控件背景颜色Cursor设置或获取当鼠标指针位于控件
13、上时显示光标样式TabIndex设置或获取控件容器上控件Tab键次序TabStop设置用户能否使用Tab键将焦点放在该控件上Tag设置或获取包含相关控件数据对象Visible设置是否在运行时显示该控件Enable设置控件是否能够对用户交互做出响应第23页5惯用控件事件事 件描 述Click鼠标触发事件,在单击控件时发生DoubleClick鼠标触发事件,在双击控件时发生DragDrop当一个对象被拖放到控件上、用户释放鼠标时发生DragEnter当被拖动对象进入控件边界时发生DragLeave当被拖动对象离开控件边界时发生DragOver当被拖动对象在控件范围时发生MouseDown当鼠标指针
14、位于控件上并按下鼠标键时发生MouseUp当鼠标指针位于控件上并释放鼠标键时发生MouseMove鼠标指针移到控件上时发生KeyPress控件有焦点情况下,按下任一键时发生,在KeyUp前发生第24页KeyDown控件有焦点情况下,按下任一键时发生,在KeyPress前发生KeyUp控件有焦点情况下,释放任一键时发生GetFocus在控件取得焦点时发生LostFocus当控件失去焦点时发生Paint在重绘控件时发生Resize在调整控件大小时发生Validated在控件完成验证时发生Validating在控件正在验证时发生第25页6.2.1 标签控件和超链接标签控件1标签控件(Label控件)
15、Label控件,在工具箱中图标是,用于显示(输出)文本或图像信息。 Label控件也能够用来为其它控件定义访问键。在标签(Label)控件中定义访问键时,用户能够按ALT键和指定字符将焦点移动到Tab键次序中下一个控件上。因为标签无法接收焦点,所以焦点自动移动到Tab键次序中下一个控件上。为标签设定访问键步骤:(1) 向窗体中添加一标签控件,然后绘制另一个控件。或按任意次序添加控件,并将该标签TabIndex属性设置为比另一个控件小1。 (2) 将该标签UseMnemonic属性设置为True(UseMnemonic属性允许用户启用访问键功效)。在该标签Text属性中使用“and”符(&)为该
16、标签分配访问键。第26页比如,向带标签控件分配访问键,打开项目和窗体,向窗体中添加标签控件,然后按任意次序添加TextBox控件若干,并将标签TabIndex属性设置为1,另一个控件textBox1TabIndex属性设置为2(确保比上述标签TabIndex属性大1即可)。将该标签UseMnemonic属性设置为True。该标签Text属性设置为“ab&v”,在字符“v”前使用“and”符(&)为该标签分配访问键。此时标签变为,当程序运行时,同时按下ALT键和v键,textBox1将取得焦点。第27页标签除了含有惯用属性外,还有如表6-6所表示属性 属 性描 述Image设置或获取显示在Lab
17、el上图像ImageList设置或获取包含要在Label控件上显示图像图像列表ImageListImageIndex与ImageList组合使用,ImageList中图像索引号TextAlignImageAlign设置或获取标签汉字本/图像对齐方式AutoSize设置或获取一个值(True或False),表示是否自动调整控件大小以完整显示标签中内容BorderStyle设置或获取控件边框样式。其值为枚举型:None(无边框)、FixedSingle(单行边框)、Fixed3D(三维边框)第28页2超链接标签控件(LinkLabel控件)LinkLabel 控件也叫超链接标签控件,在工具箱中图标
18、是,它除了含有Label控件全部属性、方法和事件外,还有针对超链接和链接颜色属性及事件,如表6-7所表示 属性/事件描 述属性LinkColor设置或获取显示普通链接时使用颜色VistedLinkColor设置或获取显示以前访问过链接时所使用颜色DisabledLinkColor设置或获取显示禁用链接时所用颜色LinkBehavior设置或获取一个表示链接行为值事件LinkClicked当单击控件内链接时发生第29页【例6-2】 创建一个Windows窗体应用程序,其项目名为ex06-02。在“资源管理器”中选中该项目,单击鼠标右键,选择“添加”“Windows窗体”菜单项,进入添加新项窗口,
19、创建新窗体Form2。然后在form1linkLabel1LinkClicked事件中填写代码。在LinkClicked事件处理中,调用Show方法打开刚才建立窗体,并将linkLabel1.LinkVisited属性设置为True。观察窗体改变.第30页代码以下:private void linkLabel1_LinkClicked(object sender,LinkLabelLinkClickedEventArgs e) Form2 f2 = new Form2(); f2.Text = 被链接窗口; f2.Show(); linkLabel1.LinkVisited = true;/表
20、示已被链接过 第31页【例6-3】 使用LinkLabel控件开启Internet Explorer,并链接到Web网页 在linkLabel1控件LinkClicked事件中编写以下代码:private void linkLabel1_LinkClicked_1(object sender, LinkLabelLinkClickedEventArgs e) /调用Process.Start方法来经过一个URL打开默认浏览器 System.Diagnostics.Process.Start(); 其中,System.Diagnostics.Process.Start方法以某个URL开启默认浏览
21、器。第32页6.2.2 按钮控件Button(按钮)控件,在工具箱中图标是,功效是在窗体上创建一个按钮,允许用户经过单击它来完成指定操作。每当用户单击按钮后,就会触发Click事件处理程序。单击Button控件后还会触发其它事件,如MouseEnter、MouseDown等,假如要为这些事件设置相关事件处理程序,则要确保它们之间操作不会有冲突。另外,按钮控件不支持双击事件。第33页【例6-4】 单击Button1,改变Label1字体、颜色。创建一个Windows窗体应用程序,项目名称为ex06-04,向窗体中添加一个Button控件和一个Label控件。在Button1Click事件中编写以
22、下代码:private void button1_Click(object sender, EventArgs e) label1.Text = Button单击事件修改Label属性; label1.Font = new Font(宋体, 16, FontStyle.Bold); label1.ForeColor = Color.Red; 第34页【例6-5】 经过本例了解按钮鼠标按下事件、单击事件、鼠标抬起事件,当用鼠标单击按钮时,这些事件依次发生次序 代码以下:namespace ex06_05 public partial class Form1 : Form public Form1
23、() InitializeComponent(); private void button1_Click(object sender, EventArgs e) label1.Text += 按钮单击事件n; private void button1_MouseDown(object sender, MouseEventArgs e) label1.Text += 按钮鼠标键按下事件n; private void button1_MouseUp(object sender, MouseEventArgs e) label1.Text += 按钮鼠标键抬起事件n; 第35页6.2.3 文本框控件
24、、富文本框控件1TextBox控件TextBox(文本框)控件,在工具箱中图标是,功效是获取用户在窗体内输入或显示文本。文本框控件不但能够编辑单行文本,还能够编辑多行文本。在单行文本编辑情况下,用户能够使用文本框Text属性访问其中内容;在多行文本编辑情况下,则要使用Lines属性,它是一个字符串数组,其中每个元素对应多行文本中一行。用户在文本框中所能输入字符数只受可用内存限制,但能够设置MaxLength来限制所能输入字符数。在通常情况下,文本框中不能使用Enter键进行换行或使用Tab键输入制表符,这两个键默认行为是触发窗体AcceptButton属性Click事件和切换输入焦点,要想在文
25、本框中进行换行操作需Ctrl+Enter组合键。第36页假如仍希望在文本框中使用Enter键和Tab键,则需要把文本框AcceptsReturn属性和AcceptsTab属性设置为True。TextBox控件惯用属性如表6-8所表示,TextBox控件惯用事件见表6-9所表示,TextBox控件惯用方法如表6-10所表示。第37页表6-8 TextBox控件惯用属性属 性描 述PasswordChar用来替换在单行文本框中输入文本密码字符(仅在MultiLine为False时有效)MultiLine为True,则允许用户输入多行文本信息;为False,则为单行文本Scrollbars当Mult
26、iLine为True时,指定文本框是否显示滚动条WordWrap当MultiLine为True时,一行文本宽度超出文本框宽度时,是否允许自动换行MaxLength允许输入到文本框中最大字符数SelectedText文本框中被选中文本(程序运行时设置)SelectionLength文本框中被选汉字本字符数(程序运行时设置)第38页SelectionStart文本框中被选汉字本开始位置(程序运行时设置)ReadOnly若为True,表示文本框中文本为只读CharacterCasing是否自动改变输入字母大小写,默认为Normal,Lower为小写,Upper为大写CausesValidation若
27、为True,控件取得焦点时,将触发Validating、Validated事件第39页表6-9 TextBox控件惯用事件事 件描 述Enter成为活动控件时发生GetFocus控件取得焦点时发生(在Enter事件之后发生)Leave从活动控件改变为不活动控件时发生KeyDown文本框取得焦点,有键按下时发生KeyPress文本框取得焦点,有键按下后释放时发生(在KeyDown事件之后发生)KeyUp文本框取得焦点,有键按下后释放时发生(在KeyPress事件之后发生)TextChanged文本框内文本信息发生改变时发生第40页表6-10 TextBox控件惯用方法方 法描 述AppendTe
28、xt( )在文本框当前文本末尾追加新文本Clear( )去除文本框中全部内容Copy( )将文本框中被选中文本复制到剪贴板中Cut( )将文本框中被选中文本剪切到剪贴板中Paste( )将剪贴板中内容复制到文本框中当前位置Focus( )将文本框设置为取得焦点Select( )在文本框中选择指定起点和长度文本SelectAll( )在文本框中选择全部文本DeselectAll( )取消文本框中选择第41页【例6-6】 编一程序,完成登录功效。在类别textBox3中,假如输入是管理员或普通用户,则Button1有效,不然Button1无效。textBox2中输入数字长度要大于等于6,而且只能输
29、入数字。本例所需控件及属性值如表6-11所表示 第42页表6-11 各个控件属性及其值控 件属 性值控 件属 性内 容Label1Text账户textBox1Text输入是账户Label2Text密码textBox2Text输入是密码(数字)Label3Text类别textBox2PasswordChar*Button1Text登录textBox3Text输入是类别第43页namespace ex06_07 public partial class Form1 : Form public Form1() InitializeComponent(); private void textBox3_
30、Validating(object sender, CancelEventArgs e) /在验证控件时触发 if (textBox3.Text = 管理员 | textBox3.Text = 普通用户) MessageBox.Show(请登录);/弹出消息框,调用消息框Show方法 button1.Enabled = true; else textBox3.Focus(); /textBox3取得焦点 MessageBox.Show(请重新输入是普通用户还是管理员); button1.Enabled = false; /Button1设为无效 第44页 private void textBo
31、x2_Validated(object sender, EventArgs e) /成功验证后触发 if (textBox2.Text.Length 6) MessageBox.Show(密码长度大于等于6); textBox2.Focus(); 第45页 private void textBox2_KeyPress(object sender, KeyPressEventArgs e) /键按下事件, 整个按键动作完成后触发, 对CTRL、ALT等控制键无反应 /假如密码栏输入是非数字则拒绝接收 if (e.KeyChar 57) & e.KeyChar != 8) e.Handled = true; /拒绝接收键入字符 private void button1_Click(object sender, EventArgs e) Form2 tt = new Form2(); /创建一个Form2类对象tt。需先建立Form2窗体 tt.Show(); /显示另一窗
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中生对AI在智能生物质能发电中应用设想调查课题报告教学研究课题报告
- 2026年北京市东城区高三二模政治试卷(含答案)
- 2026年贵港市卫生健康系统事业单位人员招聘考试备考试题及答案详解
- 2026年上海市写字楼行业分析报告及未来发展趋势报告
- 2026年双鸭山市消防救援系统事业单位人员招聘考试备考试题及答案详解
- 2026年延安市宝塔区卫生健康系统人员招聘笔试参考题库及答案解析
- 2026年苏氨酸行业分析报告及未来发展趋势报告
- 2026年金属切割及焊接设备制造行业分析报告及未来发展趋势报告
- 诚信计生协议书
- 误工费合同协议书
- 雷克萨斯ES说明书
- 生字预习表语文预习卡
- 9.3 LLDPE物质安全资料表-2
- 2023年广东交通职业技术学院单招综合素质模拟试题及答案解析
- 郑渊洁童话之《五个苹果折腾地球》
- 大一下学期高等数学期中考试试卷及答案
- GB/T 27725-2011热塑性塑料蝶阀
- GB/T 1957-2006光滑极限量规技术条件
- 农业行政处罚程序和文书制作课件
- 工业机器人编程与实操期末试题
- 输电线路改造工程验收交底
评论
0/150
提交评论