VisualC#之使用常用控件.docx
- 文档编号:30077892
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:59
- 大小:494.54KB
VisualC#之使用常用控件.docx
《VisualC#之使用常用控件.docx》由会员分享,可在线阅读,更多相关《VisualC#之使用常用控件.docx(59页珍藏版)》请在冰豆网上搜索。
VisualC#之使用常用控件
第5章使用常用控件
VisualC#2008提供了很多用于开发Windows和Web应用程序的控件,本章在介绍完焦点与Tab键序后,结合一些Windows应用程序实例介绍了部分常用控件的常用属性、方法、事件及其具体应用。
本章的大部分实例都将界面设计和程序代码编写结合起来,在编写少量代码的基础上,开发出具有一定功能的Windows应用程序,通过对这些实例的学习,您将能够对Windows应用程序的设计有进一步的了解和认识。
5.1焦点与Tab键序
众所周知,在Windows环境下向计算机输入数据时,首先需要选定待输入的位置,输入完一条项目(数据)后,可以通过用鼠标单击或者使按下键盘的【Tab】键来改变待输入的位置。
在VisualC#2008中,称待输入的位置对应的对象具有焦点,而焦点在对象间移动的顺序称为Tab键序。
5.1.1焦点
在学习VisualC#2008的控件之前,首先要了解与控件紧密相关的焦点的概念。
焦点是控件接收鼠标或键盘输入的能力。
当对象具有焦点时,可以接收用户的输入,例如:
为登录QQ而输入QQ密码时,焦点就在等待输入QQ密码的文本框上。
只有当控件的Enabled和Visible属性值均为True时,才可以接收焦点。
Enabled属性决定控件是否响应由用户产生的事件,如键盘、鼠标事件;Visible属性决定控件是否可见。
但是并非所有的控件都具有接收焦点的能力,如:
GroupBox、PictureBox、Timer等控件都不能接收焦点。
5.1.2设置焦点
在程序运行时,不管是使用鼠标单击选择对象还是使用快捷键选择对象,都可以使对象获得焦点。
然而在程序代码中,则需要使用Focus()方法使对象获得焦点,使用Focus()方法的语法格式为:
<对象>.Focus();
如:
“txtQQPassword.Focus();”,该代码的功能是将焦点赋予文本框txtQQPassword。
大多数控件得到和失去焦点时的外观是不相同的,如:
(1)按钮控件得到焦点后周围会出现一个虚线框;
(2)文本框得到焦点后会出现闪烁的光标。
5.1.3Tab键序
Tab键序是指当用户按下键盘的【Tab】键时,焦点在对象(控件)间移动的顺序,每个窗体都有自己的Tab键序。
默认状态下的Tab键序跟添加控件的顺序相同。
例如在窗体上先后添加了3个命令按钮Button1、Button2和Button3,则程序启动后Button1首先获得焦点,当用户按下Tab键时,焦点依次转移向Button2、Button3,然后再回到Button1,如此循环。
具有焦点的控件有两个控制Tab键序的属性,分别是TabIndex和TabStop属性。
1.TabIndex属性
TabIndex属性决定控件接收焦点的顺序,VisualC#2008按照控件添加的顺序依次将0、1、2、3、……分配给相应控件的TabIndex属性。
用户在运行程序时按下Tab键,焦点将根据TabIndex属性值在控件之间转移。
如果希望更改Tab键序,可以通过设置TabIndex属性来更改。
例如希望焦点直接从Button1转移到Button3,然后再到Button2,则应该将Button2和Button3的TabIndex属性值互换。
注意:
不能获得焦点的控件及无效或不可见的控件,不具有TabIndex属性,因而不包含在Tab键序中,按Tab键时这些控件将被跳过。
2.TabStop属性
TabStop属性决定焦点是否能够在该控件上停留。
它有True和False两个属性值,默认为True;如果设为False,则焦点不能停在该控件上。
例如希望Button2不能接收焦点,只要将Button2的TabStop属性设为False即可,(代码为:
Button2.TabStop=false;),这样在按Tab键时将跳过Button2控件,但是它仍然保留在Tab键序中的位置。
5.2Form
窗体(Form)是Windows应用程序界面的最大容器,它可以容纳其他的一些控件,使用它和其他的Windows控件可以设计出美观的用户界面,下面将介绍窗体的生成方法及其常用的属性、方法和事件。
5.2.1生成Form
每当用户创建一个新的Windows应用程序时,VisualC#2008会自动生成一个名为Form1的窗体。
前面介绍过,默认窗体的大小可以通过鼠标的拖拽方法改变,也可以通过窗体的Size属性来修改。
很多情况下,一个窗体满足不了应用程序的要求,如图书馆管理系统,既要对图书的基本情况进行管理,又要对读者以及读者借(还)书等信息进行管理,这时仅使用一个窗体是不合理的。
当需要多个窗体时,可以通过【项目】→【添加Windows窗体】菜单命令来为应用程序添加一个新的窗体,如图5-1所示。
图5-1添加窗体
然后在【名称】后面的文本框中输入新窗体的名称(如frmMain.cs),再单击【添加】按钮,新的窗体即生成了,同时可以看到窗体设计器上方多出了表示一个新生成的窗体的选项卡。
5.2.2Form常用的属性、方法与事件
在VisualC#2008中,一切都是对象,窗体当然也不例外,下面就介绍窗体的一些常用的属性、方法和事件。
说明:
为了方便介绍Form的常用属性、方法和事件,假定有一个名为frmMain的窗体,在应用程序中用作主窗体。
1.MaximizeBox和MinimizeBox属性
窗体的MaximizeBox和MinimizeBox属性用于确定窗体标题栏的右上角的最大化、最小化按钮是否可用。
它们均有两个值:
True和False。
True表示最大化、最小化按钮可用,为默认值;False表示不可用。
如图5-2表示窗体的最大化按钮不可用的情况,即将其MaximizeBox属性设置成了False。
图5-2最大化按钮不可用
可以直接在窗体对象的属性窗口中找到“MaximizeBox”属性,然后直接在其中进行设置,如图5-3所示。
图5-3设置MaximizeBox属性
也可以在程序运行时,使用代码来设置窗体的MaximizeBox属性,其结果与在属性窗口中直接设置一致。
例如:
//*************************************************************************
this.MaximizeBox=false;
//*************************************************************************
2.Size属性
窗体的Size属性又分成Width和Height两个属性(分别表示窗体的宽度和高度),用于设置窗体的大小,以像索为单位。
一般情况下可以通过鼠标的拖拽来控制窗体的大小,但如果要精确控制窗体的大小,则应该使用Size属性。
如将Size属性值设为“300,200”,则表示该窗体的宽为300像素、高为200像素。
3.StartPosition属性
窗体的StartPosition属性用于确定窗体第一次出现时的位置。
它提供了5个属性值:
默认的属性值为Manual:
表示窗体的初始位置由Location属性确定;CenterScreen:
表示窗体的初始位置为屏幕中心;WindowsDefaultLocation:
窗体定位在Windows的默认位置,其尺寸在窗体大小中指定;WindowsDefaultBounds:
窗体定位在Windows的默认位置,其边界也由Windows默认确定;CenterParent:
窗体在其父窗体中居中。
4.AutoSizeMode属性
窗体的AutoSizeMode属性用于确定用户界面元素自动调整自身大小的模式,它有“GrowOnly”和“GrowAndShrink”两个值,“GrowOnly”为默认值,此时用户可以使用鼠标托拽来改变窗体的大小,而设为“GrowAndShrink”时,用户不可以使用鼠标托拽来改变窗体的大小。
5.Icon属性
窗体的Icon属性用于设置窗体左上角的小图标,可以直接在属性窗口中设置,设置的方法在第2章中已经介绍过。
当然也可以通过代码来设置,使用代码设置的语法为:
System.Drawing.Bitmap.FromFile(IconPath)
说明:
“IconPath”表示Icon图标的存放路径。
6.Font属性
窗体的Font属性用于设置窗体上字体的样式、字形、大小等。
若选择Font属性,单击该属性右边的
按钮,将弹出【字体】对话框如图5-4所示。
图5-4【字体】对话框
7.Text属性
窗体的Text属性用于设置窗体标题栏显示的文本,其默认值为“Form”加上一个整数,如“Form1”、“Form2”等。
8.Enabled属性
窗体的Enabled属性用于确定窗体是否响应用户的事件。
它有True和False两个值,其默认值为True,如果设为False,则除了可以移动该窗体的位置、调整大小、关闭或者最大化最小化外,不能操作窗体内的控件等,这些控件对用户的操作完全不予响应。
使用代码设置该属性的示例为:
//*************************************************************************
frmMain.Enabled=true;//或者frmMain.Enabled=false;
//*************************************************************************
9.Visible属性
窗体的Visible属性表示窗体是否可见,它有True和False两个值,默认值为True;如果设为False,则窗体不可见。
使用代码设置该属性的示例为:
//*************************************************************************
frmMain.Visible=true;//或者frmMain.Visible=false;
//*************************************************************************
10.ControlBox属性
窗体的ControlBox属性用于控制当程序运行时,窗体的标题栏中是否显示关闭、最大化和最小化按钮,是否显示系统图标和系统菜单。
它有True和False两个属性值,图5-5分别表示该属性值为True和False的情况。
图5-5具有与不具有系统菜单的窗体
11.Show()方法和Hide()方法
窗体的Show()方法用于显示窗体,而窗体的Hide()方法用于隐藏窗体,如下面的代码分别用于显示和隐藏窗体frmMain:
//*************************************************************************
frmMain.Show();
frmMain.Hide();
//*************************************************************************
12.Load事件
窗体的Load事件即窗体载入事件,当窗体载入时触发该事件。
例如运行应用程序时,窗体frmMain显示,则触发了frmMain的Load事件。
13.Activated事件
窗体的Activated事件即激活事件,当窗体被激活时触发该事件。
例如在不同窗体之间进行切换时,变成活动窗体触发了该窗体的Activated事件。
14.Click事件
窗体的Click事件即单击事件,单击该窗体时触发该事件。
15.FormClosed事件和FormClosing事件
窗体的FormClosed和FormClosing都是窗体的关闭事件,但两者有着本质的区别,FormClosed事件在窗体关闭后的那一刻被触发,而FormClosing事件则是当窗体正要关闭的时候被触发。
5.3Button控件
命令按钮(Button)是一种很常用的控件,主要用于接收用户的单击(Click)事件。
当用户用鼠标单击或用Enter键按下命令按钮时,都会触发Click事件,从而执行相应的代码,达到某种特定操作的目的。
命令按钮具备控件所共有的基本属性,这里不在赘述,仅介绍一下Text属性。
Text属性用于设置显示在命令按钮上的文本,可以在文本前面加上“&”字符来设置快捷键(热键)。
例如:
将按钮的Text属性设为“&OK”,该按钮的效果为:
,则“O”将被作为热键,按下Alt+O将触发命令按钮的Click事件。
5.4Label控件
标签控件有两种,一种是普通标签(Label),它主要用于显示不希望被用户修改的静态文本,因为Label控件不能由用户直接对其进行编辑,另一种是带链接的标签(LinkLabel),它主要用于设计链接。
本节介绍Label控件常用的属性和事件,LinkLabel将在后面介绍。
前面在介绍窗体时介绍过的如Text、Enabled、Visible和Font等属性,Label控件同样具有这些属性,且其用法也类似,这里不再重复介绍。
1.AutoSize属性
Label控件的AutoSize属性控制Label控件是否根据显示的文本自动调整控件的大小。
它有True和False两个属性值,默认值为True;如果设为False,表示控件的大小不会随文本的改变而变化。
2.BorderStyle属性
Label控件的BorderStyle属性用于设置标签边框的样式。
它有3个属性值:
None,表示没有边框;FixedSingle,标签具有单线边框;Fixed3D,标签具有3D样式的边框,设为该样式的标签具有立体感。
3.Click、DoubleClick事件
Label控件的Click为单击事件,单击标签是触发;DoubleClick为双击事件,双击标签时触发该事件。
4.MouseHover事件
Label控件的MouseHover事件为鼠标悬停事件,当在鼠标指针悬停在Label控件上时触发MouseHover事件。
5.5TextBox控件
文本框(TextBox)控件,与标签控件一样,它也能显示文本。
但是,TextBox控件的文本可以由用户直接对其进行编辑,这是它与标签控件最明显的区别。
从人机对话的角度来看,大多数程序,都用文本框控件来接收信息,而常用标签框控件来向用户反馈信息。
文本框常用的属性、方法和事件如下:
说明:
为了方便介绍TextBox控件的常用属性、方法和事件,假定有一个名为txtCsharp的文本框控件,用于显示一些与VisualC#2008相关的信息。
1.Text属性
TextBox控件的Text属性用于返回或设置文本框的文本内容。
设置时可以使用属性窗口,也可以使用代码,代码示例如下:
//*************************************************************************
txtCsharp.Text="VisualC#2008";//设置txtCsharp的文本内容
//*************************************************************************
2.MaxLength属性
TextBox控件的MaxLength属性用于控制文本框输入字符串的最大长度是否有限。
默认值为32767,表示该文本框中的字符串最大长度为32767;若设为其它大于0的整数,则该整数表示该文本框能够输入的最大字符串长度。
设置时可以使用属性窗口,也可以使用代码,代码示例如下:
//*************************************************************************
txtCsharp.MaxLength=100;//txtCsharp中最多只能接收100个字符
//*************************************************************************
3.MultiLine属性
TextBox控件的MultiLine属性控制文本框中的文本内容是否多行显示。
它有True和False两种属性值,默认为False,表示以单行形式显示文本;如果为True,则文本内容以多行形式显示。
4.ScrollBars属性
TextBox控件的ScrollBars属性设置文本框是否有垂直或水平滚动条。
它有四种属性值:
None,没有滚动条;Horizontal,文本框有水平滚动条;Vertical,文本框具有垂直滚动条;Both,文本框既有水平滚动条又有垂直滚动条。
设置时可以使用属性窗口,也可以使用代码,代码示例如下:
//*************************************************************************
txtCsharp.ScrollBars=ScrollBars.Both;//txtCsharp具有水平和垂直滚动条
//*************************************************************************
注意:
显然,只有当MultiLine(多行显示)属性为True时,将ScrollBars属性设置为1、2或3才有效。
5.PasswordChar属性
TextBox控件的PasswordChar属性设置是否在文本框中显示用户键入的字符。
如果将该属性值设为某一字符,那么无论用户键入什么,在文本框中均显示该字符。
例如:
将该属性设为“*”,则在文本框中只显示“*”,即最终用户无法知道文本的内容,可以起到显示保密信息(如用户密码)的作用。
设置时可以使用属性窗口,也可以使用代码,代码示例如下:
//*************************************************************************
txtCsharp.PasswordChar="*";//设置txtCsharp的密码字符为"*"
//*************************************************************************
注意:
只有当MultiLine属性为False时,该属性才有效。
6.SelectedText属性
TextBox控件的SelectedText属性用于返回在文本框中选择的文本。
要在程序运行时操作当前选择的文本,可以通过该属性来处理。
例如要将txtCsharp中所选择的文本替换为“VisualC#2008”,可以使用以下代码:
//*************************************************************************
txtCsharp.SelectedText="VisualC#2008";
//*************************************************************************
说明:
如果要删除选择的文本,只需将空字符串("")赋给它就行了。
7.ReadOnly属性
TextBox控件的ReadOnly属性用于设置文本框中的文本内容是否只读。
它有True和False两个值,默认值为False,即文本内容是可读写的;如果设为True,则该文本框的文本内容只读,不可编辑,同时该文本框变成灰色。
设置时可以使用属性窗口,也可以使用代码,代码示例如下:
//*************************************************************************
txtCsharp.ReadOnly=true;//txtCsharp是只读的
//*************************************************************************
8.SelectionStart属性
TextBox控件的SelectionStart属性用于返回或设置用户在文本框中选择的文本内容的第一个字符的位置。
字符位置的编号(索引号)从0开始,当没有选择文本时,返回当前鼠标指针的位置。
9.SelectionLength属性
TextBox控件的SelectionLength属性用于返回或设置文本框中被选择的文本长度。
当没有选择文本时,该属性值为0。
若文本框txtCsharp显示文本信息
,即其Text属性值为“欢迎使用VisualC#2008ExpressEdition!
”,则语句:
//*************************************************************************
txtCsharp.SelectionStart=8;//在txtCsharp中选择文本的第一个字符的位置为8
txtCsharp.SelectionLength=16;//在txtCsharp中选择文本的长度为16
//*************************************************************************
因为索引号从0开始,故索引号为8的字符是“Visual”中的“a”字符,从“a”字符开始选择长度为16的字符串,故上述代码执行后,文本框中被选取的文本为“alC#2008Expre”,即:
10.SelectAll()方法
TextBox控件的SelectAll()方法用于选择指定文本框中的所有文本内容。
若文本框txtCsharp显示文本信息
,则语句:
//*************************************************************************
txtCsharp.SelectAll();
//*************************************************************************
执行后的结果为:
11.TextChanged事件
TextBox控件的TextChanged事件为文本改变事件,当文本框的文本内容发生改变时触发该事件,如:
//*************************************************************************
privatevoidtxtCsharp_TextChanged(objectsender,EventArgse)
{
……
}
//*************************************************************************
12.KeyDown事件
TextBox控件的KeyDown事
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VisualC 使用 常用 控件