第3章Windows窗体常用控件.docx

上传人:b****4 文档编号:24476666 上传时间:2023-05-27 格式:DOCX 页数:20 大小:261.93KB
下载 相关 举报
第3章Windows窗体常用控件.docx_第1页
第1页 / 共20页
第3章Windows窗体常用控件.docx_第2页
第2页 / 共20页
第3章Windows窗体常用控件.docx_第3页
第3页 / 共20页
第3章Windows窗体常用控件.docx_第4页
第4页 / 共20页
第3章Windows窗体常用控件.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

第3章Windows窗体常用控件.docx

《第3章Windows窗体常用控件.docx》由会员分享,可在线阅读,更多相关《第3章Windows窗体常用控件.docx(20页珍藏版)》请在冰豆网上搜索。

第3章Windows窗体常用控件.docx

第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"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1