十九 使用Win Form控件 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
比如说电脑有显示器,鼠标,主机以及键盘的基本元素组成。在windows窗体中也有其基本控件,这些控件在每一个窗体中都要用到,也就是说无所不在。有些控件可能外观不同但是他们的使用方式都基本上一样。
Ø 掌握这些控件常用属性方法以及事件 Ø 能用编码的形式实现控件的基本功能 Ø 体会每个控件使用的场景
Ø 什么是控件类,控件类的基类(父类)是么?它是用来做什么的? Ø 标签,按钮,文本框,用来做什么的,在什么地方用,他们的属性都有那些?
控件是一种应用于windows应用程序的可视化组件,例如按钮,文本框,标签以及下来是菜单等等,可用于创建图形化接口的应用程序,他们都有特定的功能,他们的基类是System.Windows.Forms,本章内容将教我们大家如何使用标签,按钮,以及文本框他们的相关属性。 我们在介绍控件类之前,必须了解同样位于明明空间的Control类,这个是所有控件类的基类,定义各种控件类的共同属性,方法以及事件空间类均直接继承与或者是间接继承这个基类,因此拥有相同一组属性;例如,上述from类是一种控件类,button也是一种控件类,他们都有text属性,虽然text属性表示一个from窗体的对象的标题,button的text则为按钮表面显示的文字。 开发具有控件的应用程序,通常必须要有一个from类的实例对象,在其中设置相关的属性,编写相关的事件代码,来创建一个windows应用程序。 我们在创建windows应用程序的时候必须了解控件与之相对应的属性方法以及事件。 Windows Froms的一些常用属性
按钮(button)的一些属性和说明
标签(lable)的常用属性和说明
文本框的(textbox)一些常用属性和说明
Windows窗体的常用方法
窗体的常用事件
按钮的一些常用事件
文本框的事件和说明
我们在了解了这么多的控件的属性和方法之后,如何用呢?在涩会那么地方用呢?这些都是大家的疑问,我们带着这一些问题进入我们下面的学习。 我们在任务栏中开始→程序→MicrosoftVisual Studio→文件→新建→项目→c#→windows→windows应用程序,例如下图所示: 里面的项目名称可以随便写,建议有一定的含义,在后面的学习中将给大家讲一下命名规范。希望大家能过提前向后面预习一下。然后点击确定,界面会停留在这个位置如下图所示: 上面图片左边有一个工具箱,中间一个窗体(也就是大家俗称的界面)右边是解决方案资源管理器。然后我们在工具箱中的公共控件中找两个liable(标签),找两个TextBox(文本框),在找两个按钮button,把liable1属性中的AutoSize的属性更改为FALSE,然后再把TaxtAlign改为MiddleCenter,Text属性改为用户名,然后在找一个TextBox 把它的名字改为username,然后在按照上面的步骤执行一次,只是第二个liable2的值该为密码。Textbox2的name属性设置为userpwrod,Textbox2中的PasswordChar的属性设置为*.name设置为userpwrod接下来找一个button控件,把他的属性(text)甚至为取消,在找一个按钮button把他的属性设置为取消,设计之后的界面如下图所示: 上面我们把属性设计完成之后,就要考虑事件了,你可以双击确认和取消按钮,也可以选中确认然后查看属性,属性的旁边有一个打雷的图标如稀土所示 然后向TextChanged里面写ok,然后回车。向取消的TextChanged中间写Close,然后回车。这个时候我们会看见有关于事件的代码; 注意:我是用双击鼠标产生事件的,建议大家必要用这种方式,这种方式降低了程序的可读性。我们在事件里面写一个判断语句,然后F5启动调试,运行结果如下图所示: 到此为止有关于上面的所提到的空间的属性和方法提到的(也就是常用的)基本上都讲完了,洗完大家好好体会着一些控件的用途,牢记他们的常用属性。
单选按钮像我们家里的电视机一样,在同一时间只能收看一个电视频道。每一组单选按钮中只允许一个被选中,顾名思义,当用户选择某单选按钮时,同一组中的其他单选按钮不能同时选定。如图:
单选框的属性及其说明
单选按钮使用时要注意一点,如果在一个窗体中出现多组单选按钮时要注意分组,如果不分组的话,会出现所有单选按钮中你只能选中一项的后果,这是单选按钮的特性。分组的方法是将一组单选按钮放在一个容器控件中,如GroupBox等(如下图): 新建一个windows应用程序,加入一个单选框,并设置单选框的name属性为“myRadioButton”,在事件对应的方法里面添加如上代码。运行后,点击单选框按钮将会弹出“选中我了”的小对话框。在上面的代码中我们使用了事件方法中的sender参数对象,这个对象在所有控件的 事件方法中都存在,代表发送这个事件的控件。在这里发送事件的控件就是“myRadioButton”单选框,因为sender对象本身是object型,所以我们需要将其装换为RadioButton类型的对象来使用,在这里使用了此对象的RadioButton属性来判断该单选框是否被选中。
Windows 窗体 CheckBox 控件指示某个特定条件是处于打开状态还是处于关闭状态。它常用于为用户提供是/否或真/假选项。可以成组使用复选框(CheckBox) 控件以显示多重选项,用户可以从中选择一项或多项。该控件与RadioButton 控件类似,但可以选择任意数目的成组 CheckBox 控件。假设我们要做一个IT民意调查,调查表的一部分你可以这样设计(如下图):
复选框的一些常用属性及其说明
Windows窗体 ComboBox 控件用于在下拉组合框中显示数据。默认情况下,ComboBox 控件分两个部分显示:顶部是一个允许用户键入列表项的文本框。第二部分是一个列表框,它显示一个项列表,用户可从中选择一项,注意这前设置好的不能修改。
示例代码: 在上面的例子中,我们使用了设计器创建了这个例子。首先,我们向窗体中拖入了一个合框,然后再向Items属性里添加了“洛阳”“杭州“上海”“南京”四行值,并通过Text属性设置组合框默认显示值为“南京”,最后添加SelectedIndexChanged事件极其对应的代码,此事件对应的代码和上面的代码完全一样。这些步骤完成后,运行结果如下图所示:
Windows窗体 ListBox 控件顾名思义就是用列表来显示数据。例如一个文件夹下的文件列表,一个公司的员工列表,一个学校的学生列表等等都可以用列表框来显示。列表框和ComboBox都有列表的功能,区别在于列表的数据都是可见的,并且同时可选中多项。
示例代码:
运行效果如下图:
我们在上面例子中是使用代码方式产生和使用列表框的。具体使用设计器来建立列表框参照组合框(ComboBox)的介绍,因为列表框的建立和组合框一模一样。对于列表框还要掌握其集合属性Items的操作,对应的操作方法如下: 增:用Add或Insert方法,如lb.Items.Add(“加拿大”)或 lb.Items.Insert(“中国”,0)。 删:用Remove或RemoveAt方法,如lb.Items. Remove (“加拿大”)或 lb.Items. Remove (0)。 改:用索引器机智,如lb. Insert[0]= “中国”。 查:用IndexOf或Contains,前者查找该项出现位置,后者判断是否包含该项。 从ConboBox开始我们就接触了控件的集合属性,组合框和列表框里面都有集合属性 Items,但是它们是不同的。组合框中的 Items集合是 ConboBox.ObjectCollection类型的,列表框里面 的集合属性是 ListBox.ObjectCollection类型的。但是无论哪种类型,对于我们来说集合最重要的操作就是增、删、改、查(又名珍珠奶茶),而且它们几乎相同,这非常有益于我们掌握不同控件的这些集合属性。
Windows窗体 ListView是一个比较复杂的控件。Windows 窗体 ListView 控件显示了带图标的项的列表。可使用列表视图创建类似于 Windows 资源管理器右窗格的用户界面。该控件具有五种视图模式:大图标方式(LargeIcon)、小图标(SmallIcon)、列表方式(List)和详细信息(Details)、缩略图(Tile)。 大图标视图模式在项文本旁显示大图标;如果控件足够大,则项显示在多列中。小图标视图模式除显示小图标外,其他方面与大图标视图模式相同。列表视图模式显示小图标,但总是显示在单列中。“Details”视图模式在多列中显示项。
Items集合属性类型是ListViewItemCollection,常用属性和方法如下:
对于集合元素的操作非常重要,但操作的方法基本相同 ,我们在前面也提到过这一点.对于ListView来讲,在代码示例之前我们需要介绍一下简单控件——图片列表控件(ImageList).图片列表控件一般只是作为一个图片的容器提供给其他控件使用.在前面介绍的控件ToolStrip ListBox中都有用到.图片可以使用Add和Remove方法添加或删除图片: ImageList imgList = new ImageList(); imgList.Add(Image.FromFile(“C:\\tem.jpg”)); 下面是用代码方式建立两个列表视图的例子,第一个方法建立了一个图标方式的列表视图,第二个方法是使用详细列表的方式建立一个可以显示数据库数据的列表视图。你将这些方法直接在窗体加载时调用,或者在一个按纽里调用即可即可建立目标控件。 示例代码: 运行效果如下图:
示例代码:
运行效果:
详细方式的列表视图比较重要,就因为它可以显示数据库数据。这里要注意,在列表视图控件中每一行都是一个ListViewItem对象,每一行又可以分为很多列,这些列都存在于SubItems中。注意当ListViewItem对象创建后,第一列的数据已经默认了,除了第一列外其他的列都要调用SubItems.Add方法将其加入。 当然,如果你想使用设计器建立列表视图控件也是比较简单的。从工具烂拖入一个列表视图控件后直接默认的就是小图标的显示方式,然后在Items属性里添加显示项即可。如果要建立一个详细信息显示方式的列表视图,你还需要把View属性改为Details,并在Columns属性里面添加列标题,在Items属性里添加列项。
除了以上介绍的常用控件外还有一些其它的次常用控件,将分别列出其常用属性和方法。 验证控件(ErrorProvider)常用属性
验证控件(ErrorProvider)的方法
举个例子来说吧,当用户在登陆的时候,提示用户名和密码不能我空,下面我们来简绍这个空间的一些用法。具体步骤我们在这里不必在重复,我们重点简绍核心代码。 状态栏StatusStrip控件,他是有System.windows.Froms.ToolStrip类派生过来的。他是一个能包含其它的容器控件(成为子控件)的容器控件,StatusStrip控件用来显示有关当前窗体上的信息。此空间还用来提供窗体正在执行操作的进度反馈信息。默认情况下,StatusStrip控件停靠在窗体的底部。
刚刚我们不是说过StatusStrip控件是一个包含几个子控件,下面我们就来介绍这几个子控件,他们就有与父控件相同的属性方法和事件。 StatusStrip控件的子控件如下: SatusLabel ProgressBar DropDownButton SplitButton SatusLabel 此控件可以用来显示状态信息,他还可以用来提示用户进行有效的输入。此控件具有各种属性,text属性和Spring属性。Text属性用于在SatusLabel控件上显示文本sping用来在SatusLabel控件在填充在StatusStrip控件上任何剩余的空白。 下面的事例说明了SatusLabel的text和spring属性的用法: SatusLabel.Spring=True; SatusLabel.Text=”以保存”;
ProgressBar控件 此控件表示在windows进度条控件,用于显示任何任务完成状态。当需要显示应用程序执行进度的任务进度事使用此控件。 下面我们来介绍一下ProgressBar控件的一些属性。
DropDownButton控件 此控件显示的toolstripDropDown允许用户从其中的多个选项中选择一个项。当无法容纳将在statusStrip控件上显示的项时一般会用此控件。 下面我们来简绍一下DropDownButton控件的一些属性。
StatusStrip控件 这个控件时左边的按钮和右边的下拉按钮的组合,如下图所示: 当同时需要按钮和下拉按钮功能时使用这个控件。 下面我们来简绍一下StatusStrip控件的一些属性。
ToolStrip控件的应用 工具栏为我们的操作提供了便捷的途径。在使用windows应用程序的过程中,你也许已经注意到这个控件的重要性。需要改变字体格式时候,你会使用工具栏上的图标,而不会在通过菜单选项进行操作。 Windows窗体 ToolBar 控件用作窗体上的控制条,用于显示一行下拉菜单和一些可激活命令的位图按钮。因此,单击工具栏按钮相当于选择菜单命令。可将按钮配置为以普通按钮、下拉菜单或分隔符等形式来显示和使用。通常情况下,工具栏包含的按钮和菜单与应用程序菜单结构中的项相对应,以提供对应用程序的常用功能和命令的快速访问。 因此,工具栏为应用程序的操作提供了快捷方式。你即可以在设计时,也可以在设计时,也可以在运行时为应用程序添加工具栏。要在设计时添加按钮,你首先需要在windows窗体添加一个toolStrip控件,然后从toopStrip控件的properties窗口中打开items属性,如下图所示: 要在运行时添加项目,你首先在windows窗体中添加一个toolStrip控件,然后通过编写代码为toolStrip控件添加项目。 toolStrip控件提供了丰富的项目集合,你既可以在设计时,也可以在运行时将这些项目添加到该控件中,toolStrip控件可以容纳按钮,标签,分隔按钮,下拉按钮,分隔符,组合框,文本框和进度条的控件。 树视图(TreeView)控件 使用数视图控件可以为用户显示层次结构的数据,就像在windows操作系统的windows资源管理器功能的左边窗格显示文本和文件夹一样。树视图中的各个节点可能包含其他的节点,被包含地 节点称为子节点,包含的节点称为父节点。父亲节点可以被展开,你可以按展开后折叠的方式显示。 下面我们来介绍数视图常用的属性及事件:
Nodes(TreeNodeCollection类型)的属性和方法:
下面我们就为大家演示一下这个控件的具体的使用: 首先我们新建项目→创建一个windows应用程序→然后向窗体上拖动treeview控件如下图示: 添加节点跟节点和兄弟节点,然后确定(注意:我们以世界为例,世界包括国家和地区,等于说世界是父级,国家有中国,日本,美国。地区有可是米尔地区,犹太地区,巴勒斯坦地区等等。在这里面世界有是一个根节点)如下图所示: 因为这个控件有默认事件,所以我们不需要写事件。 我们来简绍下一个控件翻页控件(TabControl)控件,它用来在多个选项卡上安排其他诸如文本框和标签之类的空间。他的主要属性有tabpages在tabcontrol中检索选项卡中页的集合。这个控件的一个最重要的属性是tappases他可以修改页面的属性。下面我们来用一个具体的例子来实现这个控件的用法。首先我们还是新建windows应用程序。然后在所有windows出题中选择工具箱中的contral这个控件,然后修改它的text的属性,如下图: 我们把tabpage1改为中国,tabpage2改为美国,然后确定,利用我们刚刚学过的treeview控件。想一想我国和美国的题图名人都是有谁?我在这里为大家提供了一些名人供大家参考:
如上图所示:这个控件用到的一个实际例子就是word里面的字体如下图所示: 上面的这是一个很好的例子,我们大家如果有机会可以尝试做这个。 菜单是windows窗体的界面元素,菜单不仅仅在windows窗体中运用,而且也在web窗体中使用。菜单为执行某个功能提供一种快捷的操作方式,提供了将命令分组的一致方法。菜单的一种是固定在软件的上侧,我们称为主菜单是点击鼠标右键是弹出我们通常成为上下文菜单,例如下图:我们最熟悉的记事本: 如图,主菜单包括菜单栏,主菜单选项,子菜单,子菜单选项。例如编辑是主菜单选项,撤销是子菜单选项。下面我们来简绍我们菜单控件的一些常用属性和事件:
建立菜单一般来说使用窗体设计器就可以了,我们下面演示一下如何使用代码创建菜单,添加子菜单以及设置子菜单选项的点击事件; private void createmenu() { MenuStripm = new MenuStrip(); //为菜单添加一个选项 ToolStripMenuItem mfile = newToolStripMenuItem("文件"); m.Items.Add(mfile); ToolStripMenuItem subopenfile = newToolStripMenuItem("打开"); //地址菜单打开文件菜单点击事件 subopenfile.Click += newSystem.EventHandler(sub_click); //为主菜单添加一个字子菜单项 mfile.DropDownItems.Add(subopenfile); this.Controls.Add(m); } private void sub_click(object sender,System.EventArgs e) { MessageBox.Show("选中我了");} 到此为止有关于上面的所提到的空间的属性和方法提到的(也就是常用的)基本上都讲完了,洗完大家好好体会着一些控件的用途,牢记他们的常用属性。体会这些控件的用法。
项目背景:对于每一个学生来说,我们几乎每一个都几乎天天完QQ,我们应该做一个QQ登陆界面。然后登陆成功,跳转到另一个窗体。解决方案:学习如何用记事本编写用户登陆程序。进行调试程序。
项目背景:每天我们几乎都要和windows资源管理器见面,但是我们考虑怎么做了吗? 解决方案:看自己的windows资源管理器能否把所有的windows文件显示出来。
选择题: 下面哪一个是windows出题的基类 A.System.Windows B.System.Text; C.System.Windows.Forms D.System.Drawing 2.ListBox控件中的SwlectionMode的属性默认值是: A.None B.One C.MultiSimple D.MultiExtended 3.在windows应用程序中,哪个文件是应用程序的入口点_______ A.From1.cs B.From1. Designer.cs C.Program.cs D.main() 4.下面哪一个是用于隐藏窗体_______ A.Show() B.Hide() C.Activate() D.Close() 5.使用下面哪一个属性在StatusStrip控件上用StatusLable控件上执行填充任何剩余部分的空白? A.Tectproperty B.Spring property C.Size property D.Padding Property
在本章中,我们主要学习了: WinForms可用于 Windows 窗体应用程序开发 Windows 窗体控件是从 System.Windows.Forms.Control 类派生的类 标签控件用于显示用户不能编辑的文本或图像 按钮控件提供用户与应用程序交互的最简便方法 组合框控件是列表框控件和文本框控件的组合,用户可以键入文本,也可以从所提供的列表中选择项目 窗体提供了收集、显示和传送信息的界面,是 GUI的重要元素 当触发一个事件的时候窗体就会执行相应的代码。 MessagBox类用来在屏幕上显示提示和消息。在关闭对话框之后,用户不能看到消息。 StatuStrip控件是有System.windows.Froms.ToolStrip类派生过来的,可以包含其他控件。
1、用记事本编写,上课演示的哪一个项目,然后给用户三次机会,如果超过三次则显示come out。 2、编写一个IT信息调查的应用程序。 3、编写一个记事本程序。 |