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