第3章Windows窗体常用控件.docx
- 文档编号:24476666
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:20
- 大小:261.93KB
第3章Windows窗体常用控件.docx
《第3章Windows窗体常用控件.docx》由会员分享,可在线阅读,更多相关《第3章Windows窗体常用控件.docx(20页珍藏版)》请在冰豆网上搜索。
第3章Windows窗体常用控件
【例3-1】创建一个简单的Windows应用程序,输入圆的半径,求圆的面积,整个案例的完整运行结果如图3-1所示。
这里创建其中的标签部分。
图3-1求圆面积案例的运行结果
分析:
根据题意要求,该窗体界面中应当添加2个标签控件,用于提示用户将要输入的半径和将要求出并显示的面积。
据此作如下设计:
(1)在窗体上添加2个标签控件。
(2)按表3-1所示设置窗体及标签控件的属性。
表3-1例3-1的窗体及控件属性设置
控件类别
名称(Name属性)
其它属性
属性值
窗体
Form1
Text
求圆面积
StartPosition
CenterScreen
标签
Label1
Text
半径=
标签
Label2
Text
面积=
(3)调试运行,结果如图3-2所示。
图3-2例3-1运行结果
【例3-2】接例3-1,继续完成求圆的面积的案例。
参见图3-1,这里创建其中的文本框部分。
分析:
根据题意要求,该窗体界面中还应当添加2个文本框控件,用于接收用户将要输入的半径值和显示求出的面积值。
据此接续例3-1作如下设计:
(1)在窗体上添加2个文本框控件。
(2)按表3-2所示设置控件的属性。
表3-2例3-2的控件属性设置
控件类别
名称(Name属性)
其它属性
属性值
文本框
TextBox1
Text
(空)
TextBox2
Text
(空)
(3)调试运行,结果如图3-3所示。
图3-3例3-2运行结果
【例3-3】创建一个简单的Windows应用程序,使用标签显示文本框中正在输入的内容,运行结果如图3-4所示。
图3-4例3-3运行结果
1.界面设计
创建Windows应用程序,在窗体Form1中创建两个标签Label1、Label2和一个文本框,按表3-3所示设置各控件属性。
2.编写程序代码
分析:
根据题意要求,当文本框中有输入信息时,标签Label2中的显示文本应发生变化,即跟随文本框中的信息而变。
为此应对文本框TextBox1的TextChanged事件编程。
具体如下:
PrivateSubTextBox1_TextChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTextBox1.TextChanged
Label2.Text=TextBox1.Text
EndSub
表3-3例3-3的控件属性设置
控件类别
名称(Name属性)
其它属性
属性值
窗体
Form1
Text
标签文本框的应用
StartPosition
CenterScreen
标签
Label1
Text
文本框正在输入的文字是:
AutoSize
True
标签
Label2
Text
(空)
AutoSize
True
文本框
TextBox1
Text
(空)
【例3-4】接例3-2,继续完成求圆的面积的案例。
参见图3-1,这里创建其中的按钮部分。
分析:
根据题意要求,该窗体界面中还应当添加2个按钮控件,用于执行计算面积的操作和退出应用程序。
据此接续例3-2作如下设计:
(1)在窗体上添加2个按钮控件。
(2)按表3-4所示设置控件的属性。
表3-4例3-4的控件属性设置
控件类别
名称(Name属性)
其它属性
属性值
按钮
Button1
Text
计算
按钮
Button2
Text
关闭
(3)编写代码
按钮控件的最主要功能就是通过单击操作实现某些动作,因此对按钮控件都应当处理其单击事件。
这里根据题意,编写代码如下:
PublicClassForm1
ConstPI=3.1415926
PrivateSubButton1_Click_1(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
TextBox2.Text=(TextBox1.Text)^2*PI
EndSub
PrivateSubButton2_Click_1(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click
Me.Close()
EndSub
EndClass
✧提示:
这里的ConstPI=3.1415926定义了常量PI。
该常量定义在所有Sub过程之上,其作用域为整个窗体。
有关常量及作用域参见附录A。
(4)调试运行,结果如图3-6所示。
图3-6例3-4运行结果
【例3-5】设计选择课程序
要求程序运行后,输入学生姓名并选择学历和选修课程。
学历选择有“专科”和“本科”两项,可选课程包括“大学语文”、“军事理论”、“大学英语”、“信息技术”。
当输入学生姓名并选择了学历和选修课程后,单击“确定”按钮,通过消息框显示所选信息。
运行结果如图3-7所示。
1.界面设计
按照表3-5所示设计窗体及各控件属性。
图3-7例3-5选课程序运行结果
表3-5例3-5的控件属性设置
控件类别
名称(Name属性)
其它属性
属性值
窗体
FrmSelect
Text
选课
StartPosition
CenterScreen
标签
LblName
Text
姓名
AutoSize
True
文本框
TextBox1
Text
(空)
分组框
GroupBox1
Text
学历
GroupBox2
Text
选修课程
单选按钮
RadioButton1
Text
专科
Checked
True
RadioButton2
Text
本科
复选框
CheckBox1
Text
大学语文
CheckBox2
Text
军事理论
CheckBox3
Text
大学英语
CheckBox4
Text
信息技术
命令按钮
ButOK
Text
确定
ButQuit
Text
退出
2.代码设计
这里主要处理的是两个按钮的Click事件,具体如下:
PrivateSubButOK_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButOK.Click
DimStrInforAsString
StrInfor="姓名:
"&Trim(TxtName.Text)
IfRadioButton1.CheckedThen
StrInfor=StrInfor&"学历:
"&RadioButton1.Text&vbCrLf&"所选课程:
"
Else
StrInfor=StrInfor&"学历:
"&RadioButton2.Text&vbCrLf&"所选课程:
"
EndIf
IfCheckBox1.CheckedThen
StrInfor=StrInfor+CheckBox1.Text+""
EndIf
IfCheckBox2.CheckedThen
StrInfor=StrInfor+CheckBox2.Text+""
EndIf
IfCheckBox3.CheckedThen
StrInfor=StrInfor+CheckBox3.Text+""
EndIf
IfCheckBox4.CheckedThen
StrInfor=StrInfor+CheckBox4.Text+""
EndIf
MsgBox(StrInfor)
EndSub
PrivateSubButQuit_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButQuit.Click
Me.Close()
EndSub
【例3-6】本教材第10章综合案例中的“操作员登录”窗口是标签、文本框及命令按钮综合应用的典型例子,结果如图3-8所示。
下面简述其创建过程。
图3-8操作员登录界面
表3-6控件属性设置
控件类别
名称(Name属性)
其它属性
属性值
窗体
FrmLogin
Text
操作员登录
StartPosition
CenterScreen
标签
LblUID
Text
操作员:
标签
LblUPWD
Text
密码:
文本框
TxtUID
Text
(空)
文本框
TxtUPWD
PasswordChar
*
Text
(空)
按钮
ButLogin
Text
登录(&E)
Enable
False
按钮
ButQuit
Text
退出(&Q)
1.设计操作员登录界面
按照表3-6所示在窗体上创建各控件并设置相应的属性,其中包括两个标签、两个文本框和两个按钮。
表中未列属性使用系统默认值。
2.编写事件过程代码
这里要处理的事件共有五个,即文本框TxtUID(操作员)和TxtUPWD(密码)的KeyPress事件,文本框TxtUPWD的TxtUPWD_TextChanged事件,按钮ButLogin和ButQuit的Click事件。
(1)对于“操作员”文本框TxtUID,当用户按下Enter键时,应使光标下移到“密码”文本框,即使得文本框TxtUPWD获得焦点。
具体编程如下:
PrivateSubTxtUID_KeyPress(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.KeyPressEventArgs)HandlesTxtUID.KeyPress
IfAsc(e.KeyChar)=Windows.Forms.Keys.EnterThen
TxtUPWD.Focus()
EndIf
EndSub
✧提示:
这里的e.KeyChar用于扫瞄键盘并接收用户按键。
(2)初始时“登录”按钮的Enable属性为False,按钮处于不可用状态,只有当有密码输入时才能登录。
因此,对于“密码”文本框TxtUPWD,当有文字输入时,应使ButLogin按钮的Enable属性变为True,即使其可用。
具体编程如下:
PrivateSubTxtUPWD_TextChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTxtUPWD.TextChanged()
ButLogin.Enable=True
EndSub
(3)对于“密码”文本框TxtUPWD,当用户按下Enter键时,应使光标移到“登录”按钮,即使得登录按钮ButLogin获得焦点。
具体编程如下:
PrivateSubTxtUPWD_KeyPress(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.KeyPressEventArgs)HandlesTxtUPWD.KeyPress
IfAsc(e.KeyChar)=Windows.Forms.Keys.EnterThen
ButLogin.Focus()
EndIf
EndSub
(4)对于“登录”按钮ButLogin,当鼠标单击时,应检查操作员及密码的输入情况,并作出相应处理。
这里作为分解案例,处理方法与第10章案例并不完全一致。
这里假设操作员为“admin”,密码为“123456”。
具体编程如下:
PrivateSubButLogin_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButLogin.Click
IfTxtUID.Text=""Then
MessageBox.Show("请输入操作员!
","操作员为空错误",MessageBoxButtons.OK,MessageBoxIcon.Error)
TxtUID.Focus()
ExitSub
EndIf
IfTxtUPWD.Text=""Then
MessageBox.Show("请密码输入!
","密码为空错误",MessageBoxButtons.OK,MessageBoxIcon.Error)
TxtUPWD.Focus()
ExitSub
EndIf
IfTxtUID.Text="admin"AndTxtUPWD.Text="123456"Then
MessageBox.Show("欢迎使用学生管理系统!
","欢迎",MessageBoxButtons.OK)
Else
MessageBox.Show("非法操作员或密码错误!
","登录失败",MessageBoxButtons.OK,MessageBoxIcon.Information)
TxtUID.Focus()
ExitSub
EndIf
EndSub
(5)对于“退出”按钮ButQuit,当鼠标单击时,应退出整个系统。
这里作为分解案例,只作了关闭窗体的处理,综合案例中的处理方法请见第10章。
具体编程如下:
PrivateSubButQuit_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButQuit.Click
Me.Close()
EndSub
【例3-7】本教材第10章案例中,增加操作员模块中使用了一个分组框控件GroupBox1和两个单选按钮RadioButton1和RadioButton2,用于设置新增加的操作员的权限,如图3-9所示。
其各属性设置如表3-7所示。
图3-9增加操作员界面
表3-7案例控件的属性设置
控件类别
名称(Name属性)
其它属性
属性值
分组框
GroupBox1
Text
权限设置
单选按钮
RadioButton1
Text
普通用户
Checked
True
单选按钮
RadioButton2
Text
超级用户
Checked
False
该案例假定1为普通用户,2为超级用户。
也就是说,当RadioButton1被选中,即其Checked属性值为真时,能够获取值1,否则获取值2。
作为分解案例,这里仅给出了“添加”按钮的Click事件代码,并且为了测试方便,其处理方法不同于案例。
PrivateSubButAdd_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButAdd.Click
IfIIf(RadioButtonl.Checked=True,1,2)=1Then
MessageBox.Show("您的权限为普通用户","权限设置",MessageBoxButtons.OK,MessageBoxIcon.Information)
Else
MessageBox.Show("您的权限为超级用户","权限设置",MessageBoxButtons.OK,MessageBoxIcon.Information)
EndIf
EndSub
【例3-8】本教材第10章案例中,学生档案录入模块是列表类控件应用的典型案例,其中使用了多个组合框控件,用于提供给用户选择“性别”、“民族”和“出生年月日”,如图3-14所示。
其部分属性设置如表3-8所示。
图3-14档案录入模块界面运行结果
表3-8档案录入模块窗体中与组合框控件相关的控件的属性设置
控件类别
名称(Name属性)
其它属性
属性值
窗体
FrmDaAdd
Text
档案录入
标签
LblSex
Text
性别
标签
LblNation
Text
民族
标签
LblYear
Text
年
标签
LblMonth
Text
月
标签
LblDate
Text
日
组合框
CombSex-CombDate(共6个)
Items
(空)
按钮
ButSave
Text
保存(&S)
按钮
ButRet
Text
返回(&R)
分析:
初始时,各组合框控件的Items属性均为空,而一旦窗体调入,应将其正确填充以供用户选择。
(1)对于“民族”组合框,应将56个民族的值填充到对应控件的Items属性集中,案例中使用了数据源中的数据表,故这里暂省略,不作处理。
(2)对于“年”组合框,应根据具体情况将适当的年份填充到对应控件的Items属性集中。
这里填充的是1940-2000,使用循环结构来实现。
(3)对于“月”组合框,应将1-12填充到对应控件的Items属性集中。
同样,对于“日”组合框,应将1-31填充到Items属性集中,这里使用循环结构来实现。
(4)由于不同月份对应的天数不同,所以当所选择的月份发生变化时,应重新填充日期下拉框。
这里使用选择结构来实现。
✧提示:
有关选择结构和循环结构的相关知识请参见附录A。
根据以上分析,应处理窗体FrmDaAdd的Load事件和组合框CombMonth的SelectedIndexChanged事件。
涉及到的部分代码如下:
PrivateSubFrmDaAdd_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
'填充性别组合框
CombSex.Items.Add("男")
CombSex.Items.Add("女")
'填充出生年月日组合框
Fori=2000To1940Step-1
CombYear.Items.Add(i)
Next
CombYear.Text=Year(Now)-18
Fori=1To12
CombMonth.Items.Add(i)
Next
CombMonth.Text=1
Fori=1To31
CombDate.Items.Add(i)
Next
CombDate.Text=1
EndSub
PrivateSubCombMonth_SelectedIndexChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesCombMonth.SelectedIndexChanged
'当月份变化时重新填充日期
DimiAsInteger
CombDate.Items.Clear()
SelectCaseCombMonth.Text
CaseIs=1,3,5,7,8,10,12
Fori=1To31
CombDate.Items.Add(i)
Next
CaseIs=4,6,9,11
Fori=1To30
CombDate.Items.Add(i)
Next
CaseIs=2
IfDateTime.IsLeapYear(CombYear.Text)Then
Fori=1To29
CombDate.Items.Add(i)
Next
Else
Fori=1To28
CombDate.Items.Add(i)
Next
EndIf
EndSelect
CombDate.SelectedIndex=0
EndSub
✧提示:
DateTime.IsLeapYear()是DateTime类中的函数,用于判断某一年份是否为闰年,若是则返回True,否则返回False。
【例3-9】在窗体上建立4个图形框,当鼠标指针移动到图形框上方时图片显示,当鼠标指针离开图形框时图片隐藏,用户界面如图3-15所示。
图3-15图形框控件的应用
操作步骤:
(1)设计用户界面:
在窗体上创建4个图形框控件,并分别设置属性SizeMode为True。
(2)在属性窗口中为每个控件的Image属性导入适当的图形文件,结果如图3-15所示。
(3)编写程序代码
这里通过对窗体的MouseLeave事件及各个图形框控件的MouseMove事件编程,去除Image属性的图片文件或调入图形文件,以达到移除或显示图形的目的,具体如下:
PublicClassForm1
PrivateSubForm1_MouseLeave(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMe.MouseLeave
PictureBox1.Image=Nothing
PictureBox2.Image=Nothing
PictureBox3.Image=Nothing
PictureBox4.Image=Nothing
EndSub
PrivateSubPictureBox1_MouseMove(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.MouseEventArgs)HandlesPictureBox1.MouseMove
PictureBox1.Image=Drawing.Image.FromFile("E:
\image\butterfly4.jpg")
EndSub
PrivateSubPictureBox2_MouseMove(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.MouseEventArgs)HandlesPictureBox2.MouseMove
PictureBox2.Image=Drawing.Image.FromFile("E:
\image\butterfly5.jpg")
EndSub
PrivateSubPictureBox3_MouseMove(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.MouseEventArgs)HandlesPictureBox3.MouseMove
PictureBox3.Image=Drawing.Image.FromFile("E:
\image\butterfly6.jpg"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第3章 Windows窗体常用控件 Windows 窗体 常用 控件
![提示](https://static.bdocx.com/images/bang_tan.gif)