第二章 常用控件和类的使用
Visual Studio.Net(简称VS.NET)使用控件(组件)设计Windows应用程序。将VS.NET 工具箱窗口中的控件放到窗体中,使用属性窗口改变控件的属性,或在程序中用语句修改属性,为控件增加事件函数,完成指定的功能。
3.1 控件通用属性
大部分控件,例如Label、Button、TextBox等,都是Control类的派生类。Control类中定义了这些派生类控件通用的一组属性和方法,这些属性是:
●Name:控件的名称,区别控件类不同对象的唯一标志,例如建立一个Button控件类对
象,可用如下语句,Button button1=new Button(),那么Name属性的值为button1。
●Location:表示控件对象在窗体中的位置。本属性是一个结构,结构中有两个变量,x
和y,分别代表控件对象左上角顶点的x和y坐标,该坐标系以窗体左上角为原点,x 轴向左为正方向,y轴向下为正方向,以像素为单位。修改Location,可以移动控件的位置,例如:button1.Location=new Point(100,200)语句移动按钮button1到新位置。
●Left和Top:属性值等效于控件的 Location 属性的 X 和Y。修改Left和Top,可以移
动控件的位置,例如:button1.Left=100语句水平移动按钮button1。
●Size:本属性是一个结构,结构中有两个变量,Width和Height分别代表控件对象的宽
和高,例如可用语句button1.Size.Width=100修改Button控件对象button1的宽。
●BackColor:控件背景颜。
●Enabled:布尔变量,为true表示控件可以使用,为false表示不可用,控件变为灰。
●Visible:布尔变量,为true控件正常显示,为false控件不可见。
●Modifier:定义控件的访问权限,可以是private、public、protected等。默认值为private。
●Cursor:鼠标移到控件上方时,鼠标显示的形状。默认值为Default,表示使用默认鼠标
形状,即为箭头形状。
3.2 Form类
Form类是.Net系统中定义的窗体类(WinForm),它属于System.Windows.Forms名字空间。Form类对象具有Windows应用程序窗口的最基本功能。它可以是对话框、单文档或多文档应用程序窗口的基类。Form类对象还是一个容器,在Form窗体中可以放置其它控件,例如菜单控件,工具条控件等等,还可以放置子窗体。
1.Form类常用属性
●AutoScroll:布尔变量,表示窗口是否在需要时自动添加滚动条。
●FormBorderStyle:窗体边界的风格,如有无边界、单线、3D、是否可调整等。
●Text:字符串类对象,窗体标题栏中显示的标题。
●AcceptButton:记录用户键入回车时,相当于单击窗体中的那个按钮对象。
●CanceButton:记录用户键入ESC键时,相当于单击窗体中的那个按钮对象。以上两个 68
属性多用于对话框,例如打开文件对话框,用户键入回车,相当于单击确定按钮。
●MaxiMizeBox:窗体标题栏右侧最大化按钮是否可用,设置为false,按钮不可用。
●MiniMizeBox:窗体标题栏右侧最小化按钮是否可用,设置为false,按钮不可用。如果
属性MaxiMizeBox和MiniMizeBox都设置为false,将只有关闭按钮。在不希望用户改变窗体大小时,例如对话框,将两者都设置为false。
2.Form类常用方法
●Close():窗体关闭,释放所有资源。如窗体为主窗体,执行此方法,程序结束。
●Hide():隐藏窗体,但不破坏窗体,也不释放资源,可用方法Show()重新打开。
●Show():显示窗体。
3.Form类常用事件
●Load:在窗体显示之前发生,可以在其事件处理函数中做一些初始化的工作。
3.3 标签(Label)控件
标签控件用来显示一行文本信息,但文本信息不能编辑,常用来输出标题、显示处理结果和标记窗体上的对象。标签一般不用于触发事件。
1.Label控件常用属性
●Text:显示的字符串
●AutoSize:控件大小是否随字符串大小自动调整,默认值为false,不调整。
●ForeColor:Label显示的字符串颜。
●Font:字符串所使用的字体,包括所使用的字体名,字体的大小,字体的风格等等,具
体修改方法见下边的例子。
2.例子e3_3:我的第一个程序
下面的例子在窗口中显示一行文本,该例虽然简单,但包括了用Visual Studio.Net建立C# Windows应用程序的基本步骤。具体实现步骤如下:
(1)建立一个新项目,生成一个空白窗体(Form1),见图2.4.2A。可以用属性窗口(图2.4.2B
中图)修改窗体的属性,例如修改Form1的属性Text,可以修改窗体的标题。用鼠标拖动窗体的边界小正方形,可以修改窗体打开时的初始大小。
(2)双击工具箱窗口(图2.4.2B左图)中Windows窗体类型下的Label条目,在窗体Form1放置
一个Label控件。该控件用来显示一行文本。可以用鼠标拖放Label到窗体的任意位置,并可拖动Label边界改变控件的大小。
(3)选中Label控件,在属性窗口中到属性text,把它的值由“Label1”修改为“我的第一个
程序”。接着在属性窗口中选中Font属性,单击Font属性右侧的标题为…的按钮,打开对话框,在对话框中可以修改Label控件显示字符串的字体名称和字号等,也可以单击Font属性左边的+号,在出现的子属性中编辑。编辑完成后,单击Font属性左边的-号,隐藏Font的子属性。修改ForeColor属性可以修改Label控件显示字符串的颜。这是在设计阶段修改属性。
(4)编译,运行,可以看到窗口中按指定字体大小和颜
(5)保存项目。生成一个可执行程序需要多个文件,这些
文件组成一个项目。一般把一个项目存到一个子目录
中。单击文件/存所有文件菜单项,保存所有文件。
(6)关掉VS.NET,再启动。用文件/打开项目菜单项打开刚才关闭的项目文件(扩展名为sln)。
应能看到刚才关闭的设计界面。必须打开项目,才能完成编译工作。
69
3.4 按钮(Button)控件
用户单击按钮,触发单击事件,在单击事件处理函数中完成相应的工作。
1.Button 控件的常用属性和事件
●属性Text:按钮表面的标题
●事件Click:用户单击触发的事件,一般称作单击事件。
2.例子e3_4
本例说明如何用程序修改属性,如何使用方法,增加事件函数。该例在窗口中显示一行
文字,增加2个按纽,单击标题为红的按纽把显示的文本颜改为红,单击标题为黑
的按纽把显示的文本颜改为黑。实现步骤如下: Array (1)继续上例,放三个Button控件到窗体,修改属性Text,
使标题分别为红,黑,退出。设计好的界面如右图。
(2)选中标题为红的按纽,打开事件窗口(见图2.4.2B右
图),显示该控件所能响应的所有事件,其中左侧为事件
名称,右侧为事件处理函数名称,如果为空白,表示还
没有事件处理函数,选中Click事件,双击右侧空白处,增加单击(Click)标题为红的
按钮的事件处理函数如下:
private void button1_Click(object sender, System.EventArgs e)
{ label1.ForeColor=Color.Red;//运行阶段修改属性
}//注意label1是控件的名字(label的Name属性),用它来区分不同的控件。
(3)单击(Click)标题为黑的按纽的事件处理函数如下:
private void button2_Click(object sender, System.EventArgs e)
{ label1.ForeColor=Color.Black;}
(4)单击(Click)标题为退出的按纽的事件处理函数如下:
private void button3_Click(object sender, System.EventArgs e)
{ Close();}
Close()为窗体(Form)的方法,作用是关闭注窗体。由于关闭了主窗体,程序也就结束了。注意,引用窗体的方法和属性时可不用指定对象名,换句话讲,如不指定属性或方法的对象名,默认为窗体的属性或方法。而使用其它组件的属性及方法要指明所属组件对象,例如label1.ForeColor=Color.Red;
(5)编译,运行,单击标题为红的按纽,窗体显示字符串颜变为红,单击标题为黑
的按纽,窗体显示字符串颜变为黑,单击标题为退出的按纽,结束程序。
3.5 事件处理函数的参数
事件处理函数一般有两个参数,第一个参数(object sender)为产生该事件的对象的属
性Name的值,例如上例单击标题为红的按钮,第一个参数sender的值为button1。如上
例标题为红的按钮和标题为黑的按钮使用同一个单击事件处理函数,其事件处理如下:
private void button1_Click(object sender,System.EventArgs e)
{ if(sender==button1)
label1.ForeColor=Color.Red;
else
label1.ForeColor=Color.Black;
70
}
事件处理函数第二个参数(System.EventArgs e)代表事件的一些附加信息,事件不同,所代表的信息
也不相同,例如在后边的例子中可以看到,按下鼠标的事件处理函数中,e.X 和e.Y分别为发生事件时鼠标位置的x坐标和y坐标,e.Button表示用户单击了鼠标那个键,如为MouseButtons.Left,表示单击了鼠标左键。
为了使这两个按钮使用相同的单击事件处理函数,首先为标题为红的按钮增加单击事件处理函数,即是上边的代码,事件函数名称为:button1_Click。选中标题为黑的按钮,打开事件窗体(见图2.4.2B右图),选中Click事件,从其右侧下拉列表中选择事件处理函数为button1_Click,这样两个按钮就使用相同的单击事件处理函数了。
3.6文本框(TextBox)控件
TextBox控件是用户输入文本的区域,也叫文本框。
1.TextBox控件属性和事件
●属性Text:用户在文本框中键入的字符串
●属性MaxLength:单行文本框最大输入字符数。
●属性ReadOnly:布尔变量,为true,文本框不能编辑。
●属性PasswordChar:字符串类型,允许输入一个字符,如输入一个字符,用户在文本框
中输入的所有字符都显示这个字符。一般用来输入密码。
●属性MultiLine:布尔变量,为true,多行文本框,为false,单行文本框。
●属性ScrollBars:MultiLine=true时有效,有4种选择:=0,无滚动条,=1,有水平滚动
条,=2,有垂直滚动条,=3,有水平和垂直滚动条。
●属性SelLength:可选中文本框中的部分或全部字符,本属性为所选择的文本的字符数。
●属性SelStart:所选中文本的开始位置。
●属性SelText:所选中的文本
●属性AcceptsReturn:MultiLine=true时有效,布尔变量,为true,键入回车,换行,为
false,键入回车键,相当于单击窗体中的默认按钮。
●事件TextChanged:文本框中的字符发生变化时,发出的事件。
本例要求用户在编辑框中输入两个乘数,单击按钮
把相乘的结果在编辑框中显示出来。
(1)建立一个新的项目。放四个Label控件到窗体,Text
属性分别为:被乘数,乘数,积,*,=。
(2)放三个textBox控件到窗体,属性Name从左到右分
别为:textBox1、textBox2、textBox3,属性Text都为空。
(3)放三个Button控件到窗体,Text属性分别修改为求积,清空,退出。设计的界面如上图。
(4)标题为求积的按钮的单击事件处理函数如下:
private void button1_Click(object sender, System.EventArgs e)
{ float ss,ee;
ss=Convert.ToSingle(textBox1.Text);
ee=Convert.ToSingle(textBox2.Text);
textBox3.Text=Convert.ToString(ss*ee);
}
(5)标题为清空的按钮的单击事件处理函数如下:
71
private void button2_Click(object sender,System.EventArgs e)
{ textBox1.Text="";
textBox2.Text="";
textBox3.Text="";
}
(6)标题为退出的按钮的单击事件处理函数如下:
private void button3_Click(object sender, System.EventArgs e)
{ Close();}
(7)编译,运行,在文本框textBox1,textBox2分别输入2和3,单击标题为求积的按纽,
textBox3中显示6,单击标题为清空的按钮,三个文本框被清空,单击标题为退出的按纽,结束程序。
3.7 Convert类
Convert类中提供了一些静态方法,用来把一种类型数据转换为另一种类型数据。例如,Convert.ToSingle(textBox1.Text)把字符串textBox1.Text转换为单浮点数。Convert.ToString(3.14)把单浮点数  3.14转换为字符串。其它转换函数还有:ToInt、ToInt16等等。
3.8 单选按钮(RadioButton)和GroupBox控件
RadioButton是单选按钮控件,多个RadioButton控件可以为一组,这一组内的RadioButton控件只能有
一个被选中。GroupBox控件是一个容器类控件,在其内部可放其它控件,表示其内部的所有控件为一组,其属性Text可用来表示此组控件的标题。例如把RadioButton控件放到GroupBox控件中,表示这些RadioButton控件是一组。有一些特性是互斥的,例如性别,选择这类特性可用RadioButton和GroupBox控件。
1.GroupBox控件常用属性
GroupBox控件常用属性只有一个,属性Text,指定GroupBox控件顶部的标题。
2.RadioButton控件属性和事件
●属性Text:单选按钮控件旁边的标题。
●属性Checked:布尔变量,为true表示按钮被选中,为false表示不被选中。
●事件CheckedChanged:单选按钮选中或不被选中状态改变时产生的事件。
●事件Click:单击单选按钮控件时产生的事件。
3.例子e3_8
该例用RadioButton控件修改Label控件字符串的字体为:宋体、黑体、楷体。具体实现步骤如下:
(1)建立一个新的项目。
(2)放Label控件到窗体,属性Text=“不同的字体”。字体为宋体。
(3)放GroupBox控件到窗体,其属性Text=“选择字体”。
(4)放三个RadioButton控件到GroupBox中,其属性Text分别为:
宋体、黑体、楷体。宋体RadioButton控件的属性Checked=true。设计好的界面如右图。
(5)为三个RadioButton控件的CheckedChanged
事件增加事件处理函数如下:
72
private void radioButton1_CheckedChanged(object sender, System.EventArgs e) { if(radioButton1.Checked)
label1.Font=new Font("宋体",label1.Font.Size);
}//label1显示的字体变为宋体,字体大小不变
private void radioButton2_CheckedChanged(object sender, System.EventArgs e) { if(radioButton2.Checked)
label1.Font=new Font("黑体",label1.Font.Size);
}
private void radioButton3_CheckedChanged(object sender, System.EventArgs e) { if(radioButton3.Checked)
label1.Font=new Font("楷体_GB2312",label1.Font.Size);
}
(6)编译,运行,单击RadioGroup1中的三个RadioButton按钮,可以改变字体。注意三个
按钮只能选一个,既只能选一种字体。考虑一下,是否可用Click事件。
3.9 Font类
Font类有两个构造函数:第一个是new Font(字体名称,字号),例如,label1.Font=new Font("黑体",9),用法还可参考例e3_8。第二个是new Font(字体名称,字号,字体风格),其中第三个参数是枚举类型,具体定义如下:
控件的使用
enum FontStyle{
Regular    =0,//正常字体
Bold        =1,//黑体
Italic      =2,//斜体
BoldItalic  =3,//黑斜体
Underline  =4,//下划线,5=黑体下划线,6=斜体下划线,7=黑斜体下划线
Strikeout  =8}//删除线,9=黑体删除线,10=斜体删除线,依此类推。
例如修改标签控件字体为斜体:
label1.Font=new Font("黑体",9,label1.Font.Style|FontStyle.Italic);
或者:label1.Font=new Font("黑体",9,label1.Font.Style|(FontStyle)2);
修改标签控件字体不为斜体:
label1.Font=new Font("黑体",9,label1.Font.Style&~FontStyle.Italic);
或者:label1.Font=new Font("黑体",9,label1.Font.Style&(FontStyle)(~2));
用法还可参考例e3_11。
3.10 多选框(CheckBox)控件
CheckBox是多选框控件,可将多个CheckBox控件放到GroupBox控件内形成一组,这一组内的CheckBox控件可以多选,不选或都选。可用来选择一些可共存的特性,例如一个人的爱好。
1.CheckBox控件属性和事件
●属性Text:多选框控件旁边的标题。
●属性Checked:布尔变量,为true表示多选框被选中,为false不被选中。
73

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。