第05章 Windows窗体界面设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

100第5章Windows窗体界面设计在项目开发中,界面设计是一个非常重要的方面,因为它是获取用户操作和向用户提供相关功能的主要手段。好的界面可以让使用者容易掌握、赏心悦目,把操作看作是一种享受而不是负担。VS2005提供了丰富的控件,大大简化了界面设计过程。本章主要介绍如何使用这些控件。由于从这一章以及以后的设计操作既可能在窗体设计界面下完成,也可能在代码编辑窗口中完成,因此有些操作技巧需要提醒读者注意:1)凡是通过设计界面添加的事件,要想使代码不再与某个事件关联,应该在设计界面下通过属性窗口下的雷电符号完成。这是因为自动生成的代码是单独保存在另一个文件中的,这样做的目的是为了让其自动修改生成的代码。如果忘记了在设计模式下操作,而是直接在代码编辑模式下删除了关联的事件及其代码,或者修改了事件名称,由于系统不会自动删除或修改生成的代码中对应事件的事件句柄,因此仍然需要切换到设计模式,并选中要处理的控件,然后单击属性窗口中的雷电符号,在对应的事件中重新处理一遍,否则会引起编译错误。2)如果希望控制设计窗体中各控件响应Tab键的顺序,应该通过主菜单【视图】下的【Tab键顺序】操作,操作完成后,再单击【视图】下的【Tab键顺序】返回到正常设计界面模式下。3)如果希望对变量换名,不应该在代码编辑模式下一个个修改,而应该先选中该变量,然后单击鼠标右键,选择【重构】下的【重命名】完成换名操作。4)对设计窗体中各控件的位置布局时,应该充分利用主菜单下的快捷按钮,这样可以节省很多布局时间,从而大大提高设计效率。5.1鼠标事件与键盘事件Windows窗体应用程序的设计是基于事件驱动的。事件是指由系统事先设定的、能被控件识别和响应的动作,例如,单击鼠标、按下某个键等。事件驱动指程序不是完全按照代码文件中排列的顺序从上到下依次执行,而是根据用户操作触发相应的事件。一个控件可以响应多个事件,设计Windows应用程序的很多工作就是为各个控件编写需要的事件代码,但一般来说只需要对必要的事件编写代码。在程序运行时由控件识别这些事件,然后去执行对应的代码。没有编写代码的事件是不会响应任何操作的。在VS2005中,每一个控件都有对应的若干事件,不同的控件所具有的事件也不尽相同。但是鼠标事件和键盘事件是绝大多数控件都有的两大类事件。常用的鼠标事件有鼠标单击、双击、鼠标进入控件区域、悬停于控件区域、离开控件区域等。常用的键盘事件有某个按键的按下、释放等。表5-1列出了大多数控件都有的常用的鼠标和键盘事件。第5章Windows窗体界面设计101表5-1常用事件事件类型事件名称事件触发条件常用鼠标事件Click单击鼠标左键时触发MouseDoubleClick双击鼠标左键时触发MouseEnter鼠标进入控件可见区域时触发MouseMove鼠标在控件区域内移动时触发MouseLeave鼠标离开控件可见区域时触发常用键盘事件KeyDown按下某个键时触发KeyUp释放按键时触发KeyPress释放按键后触发【例5-1】演示鼠标和键盘事件的触发条件,触发顺序,并显示各个事件所传递的参数内容。(1)新建一个名为EventExample的Windows应用程序项目,在【解决方案资源管理器】中将Form1.cs重命名为FormEvent.cs,设置窗体的【Text】属性为“事件驱动的界面设计”。(2)向窗体中添加两个Label控件、一个Button控件和一个TextBox控件,各控件的布局及相关属性如图5-1所示。(3)选中textBox1控件,按F4显示其属性,然后单击【属性】窗口的雷电符号,在事件列表中双击KeyDown,系统自动跳转到“FormEvent.cs”的代码页中,并创建相应的事件代码框架,在其中直接添加如下代码:privatevoidtextBox1_KeyDown(objectsender,KeyEventArgse){if(e.KeyCode==Keys.Up){MessageBox.Show(您现在按下的是向上箭头!);}if(e.KeyCode==Keys.F1){MessageBox.Show(您现在按下的是功能键F1!是否需要帮助?);}if(e.Alt==true&&e.Shift==true&&e.Control==true){MessageBox.Show(您现在按下的是组合键Ctrl+Alt+Shift!);}if(e.Control==true)buttonOK图5-1事件驱动的界面设计示例labelDisplayVisible:falsetextBox1label1第5章Windows窗体界面设计102{switch(e.KeyCode){caseKeys.A:MessageBox.Show(您现在按下的是组合键Ctrl+A!);break;caseKeys.B:MessageBox.Show(您现在按下的是组合键Ctrl+B!);break;}}}(4)添加buttonOK控件的Click事件、MouseEnter事件、MouseLeave事件代码:privatevoidbuttonOK_Click(objectsender,EventArgse){label1.Text=textBox1.Text;}privatevoidbuttonOK_MouseEnter(objectsender,EventArgse){labelDisplay.Visible=true;labelDisplay.Text=按下按钮将文本框中的内容显示于下面!;}privatevoidbuttonOK_MouseLeave(objectsender,EventArgse){labelDisplay.Text=;}(5)按〈F5〉键编译并执行该应用程序。程序运行时,创建窗体界面后等待用户操作。当用户将鼠标置于buttonOK上方时,会自动触发该按钮的MouseEnter事件,并执行buttonOK_MouseEnter的事件代码,labelDisplay上就会显示提示信息“按下按钮将文本框中的内容显示于下面!”;当鼠标离开buttonOK区域时,会触发该按钮的MouseLeave事件,并执行buttonOK_MouseLeave的事件代码,清除labelDisplay上的文本信息;当用户选中textBox1后,按下“↑”键或“Ctrl+A”组合键或“Ctrl+B”组合键,则触发textBox1的KeyDown事件,并执行textBox1_KeyDown的事件代码,显示相应的提示信息;当用户按下buttonOK时,会触发该按钮的Click事件,并执行buttonOK_Click事件代码,使textBox1中的文本显示在label1上。5.2Windows窗体基本控件VS2005提供的控件中,有一些控件是经常使用的,这一节主要介绍这些常用的基本控件及其使用方法和技巧。5.2.1控件中常用的属性和方法每个控件都有自己的属性、方法以及响应键盘和鼠标操作的事件。学习控件的关键是要注意这些属性、方法和事件的灵活应用。对大部分控件来说,有一些常用的属性和事件都是相同的,为避免介绍的内容重复,这里首先将大部分控件共有的属性抽取出来做一些简单介绍。第5章Windows窗体界面设计1031.常用基本属性属性是指控件的各种性质,例如,控件的大小、在窗体中的位置等等。属性一般都有默认值,也就是说,在实际编程时即使不设置任何属性值,控件也是可以使用的,只有默认值不能满足要求时才需要更改。在设计窗体时,一般通过属性窗口来设置控件的属性初始值。但要注意,有些属性在窗体设计界面中是看不到的,只能在代码中才能使用。表5-2列出了大多数控件都有的属性名称及含义。表5-2常用属性属性含义Name指定控件的名称,它是控件在当前应用程序中的唯一标识,代码通过该属性来访问控件Enabled决定控件是否可用,取值为true时可用,取值为false时不可用Font设置控件上文本的显示形式,是一个复合属性,包括字体名称、字号以及是否为斜体、加粗和下划线等BackColor设置控件的背景色ForeColor设置控件的前景色,即控件上文本的颜色Location定位控件,这是一个复合属性,需要指定控件的左上角相对于其容器左上角的坐标(x,y)Size指定控件的高度和宽度,是一个复合属性Text设置控件上所要显示的文本,如标签、按钮、复选框等控件上的文字Visible决定控件是否可见,取值为true时可见,取值为false时不可见2.常用方法每个控件都有很多方法。属性指控件具有的性质,方法则指控件要完成的功能。方法是通过代码来调用的。例如,Focus方法(获得焦点)、ToString方法(转换为字符串)等。5.2.2TextBox控件TextBox控件的主要作用是允许用户在应用程序中输入或编辑文本,当然也可以将控件的只读属性设为true,用作显示文本,而不允许用户编辑文本框中所显示的内容。在TextBox中编辑的文本可以是单行的,也可以是多行的,还可以设置为密码字符屏蔽状态作为密码输入框。1.常用的基本属性1)Text属性:用于获取或设置文本框中的内容。2)MaxLength属性:控制用户可以在文本框控件中键入的字符的最大数目,默认值为最大值,即32767个字符。注意,由于使用的是Unicode字符,所以对中文和英文的字符计数方法是相同的,即一个英文字符的长度为1,一个汉字字符的长度也是1。3)Multiline属性:决定文本框控件是否可以包含多行内容。当该属性为false时,TextBox的Width属性可以更改,但Height属性是固定的,即只允许输入单行文本;当该属性值为true时,TextBox的Width属性和Height属性均可更改,也可直接由鼠标拉动改变文本框的大小,以支持多行文本的输入和显示。4)PasswordChar属性:用于指定作为密码输入文本框,在输入字符时文本框中所要显示代替密码的屏蔽字符。如果设置了PasswordChar属性,即指定了某一字符作为密码屏蔽字符,则输入的任何字符都显示为该符号。注意,TextBox控件还有一个UseSystemPasswordChar属性,若该属性设为true,则无论在PasswordChar属性中指定了哪一个字符,最终在TextBox第5章Windows窗体界面设计104中的文本只能以系统默认的密码字符“*”来显示。2.常用的基本事件1)Enter事件:当前文本框为活动状态时触发的操作。注意,Enter事件和MouseEnter事件不同,MouseEnter事件是表示当鼠标进入当前文本框区域内时触发操作。2)TextChanged事件:文本框中的当前内容(Text属性值)更改时触发的操作。【例5-2】简单的用户信息录入界面示例。(1)新建一个名为TextBoxExample的Windows应用程序项目,在【解决方案资源管理器】中将Form1.cs改名为FormTextBox.cs,系统会自动弹出对话框确认是否重命名所有引用项,选择【是】,则窗体的【Name】属性自动更改为“FormTextBox”。(2)选中Form窗体,设置【Size】属性为Width=500,Height=400,或者可以直接使用鼠标拖动窗体右下角调整到适当大小;设置【Text】属性为“用户信息录入”,作为窗体标题栏显示的文本;将【BackColor】属性选择为【Web】的“LightGray”。(3)向Form窗体中添加四个Label控件、三个TextBox控件和一个Button控件,窗体中各控件的属性、布局及显示效果如图5-2所示。(4)选中textBoxUser,从【属性】窗口的事件列表中双击MouseEnter事件,系统自动跳转到FormTextBox.cs的代码页中,并创建相应的代码框架,只需在其中直接添加如下的功能代码即可;或者直接在FormTextBox.cs代码页的FormTextBox类中添加如下代码,并将其事件名“textBoxUser_Mo

1 / 47
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功