Winform中的常用控件Word格式.docx
《Winform中的常用控件Word格式.docx》由会员分享,可在线阅读,更多相关《Winform中的常用控件Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
{
textBox1.Enabled=true;
textBox2.Enabled=true;
listBox1.Enabled=true;
comboBox1.Enabled=true;
//设置所有代码为可用状态;
comboBox1.SelectedIndex=0;
//设置组合框控件默认为第一个
textBox1.Focus();
//设置第一个文本框后的焦点
}
取消功能源代码:
privatevoidbutton2_Click(objectsender,EventArgse)
textBox1.Enabled=false;
textBox2.Enabled=false;
listBox1.Enabled=false;
comboBox1.Enabled=false;
//设置所有代码为不可用状态;
关闭功能源代码:
privatevoidbutton3_Click(objectsender,EventArgse)
Application.Exit();
//通知所有消息泵必须终止,并且在处理了消息以后关闭所有应用程序窗口。
问题讨论:
使用Application.Exit()还是Form.Close()呢?
不论是Application.Exit(),还是Form.Close()都可以起到关闭当前窗体的作用,但是需要初学者了解这两种方法的差异性。
一个完整的WinForm程序从是Application.Run(newForm1)开始,到Application.Exit()结束,最终将执行销毁窗体和回收系统所有的资源任务,软件系统停止;
而Form.close()只是关闭当前窗口和对话任务,整体程序不退出。
如果只打开了一个窗体,那么这两种方案是一致的。
一般而言,如果只有一个窗口或者是MDI(多文档窗体)里面的主窗口则是退出程序,Form.close()也是一种安全的方式,但如果是打开多个文档窗口的情况,退出系统必须使用Application.Exit()方法。
1-3-2 基本控件使用
1.Label标签控件
Label标签控件是使用频度最高的控件,主要用以显示窗体文本信息。
其基本的属性和方法定义如表1-1所示:
属性
说明
Text
该属性用于设置或获取与该控件关联的文本
方法
Hide
隐藏控件,调用该方法时,即使Visible属性设置为True,控件也不可见
Show
相当于将控件的Visible属性设置为True并显示控件
事件
Click
用户单击控件时将发生该事件
表1-1Label标签控件属性及方法
2.案例学习:
标签控件的隐藏,窗口打开与关闭
本次实验目标是建立两个窗体,当点击图1-11的登录系统时候,可以打开另一个窗体,在点击文字打开后显示学校名称,点击文字隐藏时候隐藏学校名称。
通过本案例使读者快速掌握窗体的打开和关闭技巧,以及标签的隐藏方法。
图1-11
窗口打开与关闭窗体目标界面
由图1-11所示,从工具箱之中拖拽标签控件和linkLabel超链接文本控件到Form窗体上,更改标签文本的颜色、字体和大小属性,填写每个控件的Text属性文字内容,达到图1-11效果。
再建立Form2窗体,以便在点击“登录系统后”可以将之打开。
用鼠标双击“登录系统”超链接文本,进入.cs文件编辑状态准备进行开发。
代码加下:
打开新窗体源代码:
privatevoidlinkLabel1_LinkClicked(objectsender,LinkLabelLinkClickedEventArgse)
linkLabel1.LinkVisited=true;
//确认超文本文件链接是按照链接后的样式呈现。
Form2newForm=newForm2();
//实例化Form2窗体,命名为newForm
newForm.Show();
//将实例化后的窗体打开
this.Hide();
//当前的窗体隐藏
文字打开源代码:
privatevoidlinkLabel2_LinkClicked(objectsender,LinkLabelLinkClickedEventArgse)
label2.Show();
文字隐藏源代码:
label2.Hide();
3.TextBox文本框控件和Button按钮控件
TextBox文本框控件是使用频度较高的控件,主要用以接收或显示用户文本信息。
其基本的属性和方法定义如表1-2所示:
MaxLength
可在文本框中输入的最大字符数
Multiline
表示是否可在文本框中输入多行文本
Passwordchar
机密和敏感数据,密码输入字符
ReadOnly
文本框中的文本为只读
Text
检索在控件中输入的文本
Clear
删除现有的所有文本
Show
KeyPress
用户按一个键结束时将发生该事件
表1-2TextBox文本框控件属性及方法
Button按钮控件主要接收用户功能确认操作,以期执行具体的触发事件。
其基本的属性和方法定义如表1-3所示:
Enabled
确定是否可以启用或禁用该控件
PerFormClick
Button控件的Click事件
Click
单击按钮时将触发该事件
表1-3Button按钮控件属性及方法
4.案例学习:
用户登录功能设计
本次实验目标是通过用户键入名称和密码,经过判别为非空性之后,再判断是否符合系统规定的内容,无论成功或者失败都提示用户操作结果。
如图1-12所示为目标界面:
图1-12
用户登录功能设计目标界面
◆实验步骤
(1):
由图1-12所示,从工具箱之中拖拽标签控件、Button按钮控件以及在工具栏内的容器之中的groupBox控件到Form窗体上,调整各个控件基本属性以达到图1-12效果。
特别值得注意的是对于用户密码文本框的设置工作,其更改属性办法如图1-13所示:
图1-13
改变文本框属性成为密码框
◆实验步骤
(2):
用鼠标双击“确定”按钮,进入.cs文件编辑状态准备进行开发。
用户登录功能源代码:
if(textBox1.Text==string.Empty||textBox2.Text==string.Empty)
//此处复习逻辑或关系的编写和如何判别字串为空
MessageBox.Show("
信息禁止为空!
"
"
登录提示"
);
//WinForm环境下的弹出对话框
textBox1.Clear();
textBox2.Clear();
textBox2.Focus();
//清空名称和密码文本框,并使得名称文本框获得焦点。
return;
if(!
textBox1.Text.Equals("
admin"
)||!
textBox2.Text.Equals("
))
用户名称或密码为空!
//WinForm环境下的弹出对话框
//清理文本框的内容
//清空名称和密码文本框,并使得名称文本框获得焦点。
return;
else
欢迎您登录本系统!
消息提示"
}
代码是正确的,但是否是有效率的代码呢?
具有相同功能的业务逻辑必须集中处理,惟其如此才可以做到代码的高可维护性和高可用性。
将上述“清空名称和密码文本框,并使得名称文本框获得焦点”部分代码改为公用方法clear(),代码如下:
优化后的源代码:
if(textBox1.Text==string.Empty||textBox2.Text==string.Empty)
"
clear();
MessageBox.Show("
clear();
else
publicvoidclear()
//将具有共性的代码通过方法进行封装以提高执行效率
5.ListBox列表框控件
ListBox列表框控件主要用以显示多行文本信息,以提供用户选择之用。
其基本的属性和方法定义如表1-4所示:
Items
列表框中的具体项目,需要用户自行编辑
SelectionMode
指示列表框是单项选择,多项选择还是不可选择
SelectedIndex
被选中的行索引,默认第一行为0
SelectedItem
被选中的行文本内容
SelectedItems
ListBox的选择列表集合
默认的文本内容
ClearSelected
清除当前选择
SelectedIndexChanged
一旦改变选择即触发该事件
表1-4ListBox列表框控件属性及方法
6.案例学习:
使用列表框控件
本次实验目标是在Form窗体上建立一个列表框控件,窗体初始化的时候加载信息到列表框之中,当用户用鼠标点击某一行列表框内的信息时候,弹出对话框显示改行具体的文本信息内容。
如图1-14所示为目标界面:
图1-14
使用列表框实验目标界面
由图1-14所示,从工具箱之中拖拽列表框ListBox控件到Form窗体上,调整控件基本属性以达到图1-14效果。
用鼠标双击窗体界面,进入.cs文件编辑状态准备进行开发。
窗体初始化加载事件源代码:
privatevoidForm1_Load(objectsender,EventArgse)
this.listBox1.Items.Add("
软件部"
硬件部"
财务部"
人事部"
//通过Add方法实现对下拉列表控件的信息填充工作。
单击ListBox的某行获取该行信息源代码:
privatevoidlistBox1_SelectedIndexChanged(objectsender,EventArgse)
您选择的部门是:
+listBox1.SelectedItem.ToString()+"
,位列第"
+listBox1.SelectedIndex.ToString(),"
信息提示"
//注意学习:
listBox的SelectedIndex属性代表选中的行数
listBox的SelectedItem属性代表选中的行信息内容
7.ComboBox组合框控件
ComboBox组合框控件为典型的多选一控件,主要用以限制用户在多个固定信息情况下选择唯一一行的文本信息,以确认用户选择逻辑。
其基本的属性和方法定义如表1-5所示:
DropDownStyle
ComboBox控件的样式
MaxDropDownItems
下拉区显示的最大项目数
Select
在ComboBox控件上选定指定范围的文本
表1-5ComboBox组合框控件属性及方法
8.案例学习:
使用组合框控件
本次实验目标是在FORM窗体上建立一个列表框控件,两个组合框控件以及一个文本框控件,通过这些控件彼此之间的关联,学习并掌握ComboBox组合框控件的主要属性和方法。
本次实验目标如图1-15所示。
图1-15ComboBox组合框控件实现目标界面
根据图1-15所示,在窗体初始化时候加载部门信息到列表框和组合框内,上下组合框的DropDownStyle属性不同,上面为DropDown类型,下面为DropDownList类型。
当选择上面组合框中的具体工作部门,选中信息将分别呈现在文本框,列表框和下面的列表框之中。
由图1-15所示,从工具箱之中拖拽一个列表框控件,两个组合框控件以及一个文本框控件到Form窗体上,调整控件基本属性以达到图1-15效果。
在设置上下两个组合框控件时候,分别设置其属性DropDownStyle属性为DropDown和DropDownList类型。
这两种类型呈现的效果完全一样,但是DropDown类型是可以读写的,但是DropDownList类型仅仅为只读状态,不可编辑。
DropDownStyle还有一个属性为SimPle,列表信息完全展开,类似于列表框的样式,并且也为只读状态,不可编辑。
见图1-16。
图1-16
ComboBox组合框控件DropDownStyle属性的三种状态
在窗体初始化事件Form_Load中加载数据到具体控件:
privatevoidForm011_Load(objectsender,EventArgse)
boBox1.Items.Add("
产品部"
销售部"
生产部"
//默认的选择是"
boBox1.SelectedIndex=1;
boBox2.Items.Add("
boBox2.SelectedIndex=1;
listBox1.Items.Add("
this.listBox1.SelectedIndex=1;
//请读者注意学习comboBox,listBox控件如何定位值
this.textBox1.Text="
;
选择上面的ComboBox控件,在其SelectedIndexChanged选择变换事件里面填写下面的代码。
ComboBox控件的SelectedIndexChanged事件编码:
privatevoidcomboBox1_SelectedIndexChanged_1(objectsender,EventArgse)
stringmess=comboBox1.SelectedItem.ToString();
comboBox2.SelectedItem=mess;
listBox1.SelectedItem=mess;
textBox1.Text=mess;
9.对话框窗口
在用户操作窗体系统时候,经常会遇到与计算机的会话机制,如报错或者某种信息反馈等。
从根本上说对话框是继承窗体的并且被模式化的,对话框窗口(Dialog)更多的是从人机交互形式来看的,电脑给出提示所需参数并等待用户输入,使用者输入数据后执行,犹如一问一答的对话双方。
Windows程序中一般用窗体来实现这个人机交互形式,由于是用窗体系统实现Dialog,为了达到等待用户输入的目的因此引入了系统对话框窗口概念。
对话框窗口机制是一种典型的重载过程,该重载是通过Messa