《C sharp 控件的使用》由会员分享,可在线阅读,更多相关《C sharp 控件的使用(93页珍藏版)》请在金锄头文库上搜索。
1、控件的使用Zhanghz 2006.12.1本章要点n学习窗体控件的编程。首先介绍如何使用窗体 设计器向窗体中添加控件以及如何在窗体设计 器中调整控件位置和大小等属性。然后依次介 绍各个常用的控件,包括控件所特有的属性和 事件。n纲要q添加控件q调整控件q控件的分类介绍为窗体添加控件n在窗体设计器中打开要添加控件的窗体,然后打开“ 工具箱”面板,如图。q在“解决方案资源管理器”中双击相应的窗体节点(比如一个 Form1.cs文件)就可以在窗体设计器中显示该窗体。n3种方法将“工具箱”中的控件添加到窗体中q双击“工具箱”中要使用的控件,此时将会在窗体的默认位置 (客户区的左上角)添加默认大小的控
2、件。q在“工具箱”中选中一个控件,鼠标指针变成与该控件对应的 形状;把鼠标指针移到窗体中要摆放控件的位置,按下鼠标 左键并拖动鼠标画出控件大小后,松开鼠标即可在窗体的指 定位置绘制指定大小的控件。q直接把控件从“工具箱”拖放到窗体中,使用这种方式可以在 指定的位置添加默认大小的控件。n可以直接使用代码向窗体添加控件。q把一个按钮控件btnNew添加到窗体中: Button btnNew=new Button();n两种类型的控件q具有用户界面的控件:会出现在窗体中,并且在运行时可见 。q没有用户界面的控件:主要用于在后台提供一些功能,在运 行时不可见。当在窗体设计器中把它们添加到窗体中时,这
3、些控件将出现在窗体设计器下面的窗格中。q如图n在控件的Text属性中使用与号qbtnNew置于底层:btnNew.SendToBack();2)在窗体中定位控件n两种定位方法q在窗体设计器中通过拖动控件进行定位q通过指定控件的Location属性来定位控件n控件的位置相对于包含它的容器控件,单位为像素。 在选中控件之后可以使用箭头键微调,更精确地定位 控件。n在属性窗口中修改控件的Location属性改变控件位置 :直接输入控件位置值,X和Y值以逗号隔开,或是 展开Location属性节点,分别输入X坐标值和Y坐标值 。n在代码中设置控件位置qbtnNew.Location = new Sys
4、tem.Drawing.Point(100,100);qbtnNew.Left = 100; btnNew.Top += 200;3)改变控件大小n在窗体设计器中改变控件大小的方法q使用鼠标直接拖动控件大小q在属性窗口中改变控件的Size属性值q在窗体中选中控件,然后使用Shift +箭头键来微调控件大小n在代码中通过Size属性设置控件大小qbtnNew.Size=new System.Drawing.Size(100,100);n可以使用Bounds属性同时设置控件的位置和大小qbtnNew.Bounds=new System.Drawing.Rectangle(10,10,100,100
5、);4)固定控件n使用Anchor属性使控件的位置相对于窗体某一边固定,改变窗体大小 时,控件的位置将会随之改变而保持这个相对距离不变。n使用属性窗口改变Anchor属性时,单击控件周围的上下左右的某个方 框使之变成深灰色,就表示控件相对于窗体这条边的距离固定nSystem.Windows.Forms命名空间中包含了一个枚举类型 AnchorStyles,其中定义了Anchor属性可以组合的16种不同属性值。 可以在代码中设置Anchor属性。q控件到窗体4条边的距离都保持不变 btnNew.Anchor=AnchorStyles.All;q控件到窗体底边和左边的距离保持不变 btnNew.A
6、nchor=AnchorStyles.Bottom | AnchorStyles.Left;q控件没有固定到任何一边 btnNew.Anchor=AnchorStyles.None;n控件还可以停靠在窗体的某一边上,通过控件的Dock 属性进行设置。n使用属性窗口设置Dock属性时会显示一个设置窗口, 单击该窗口中的按钮可以设置相应的Dock属性值。这 些值在枚举类型System.Windows.Forms.DockStyle 中定义。n通过代码设置按钮控件btnNew停靠在窗体的顶边上 (这时btnNew的顶边和底边自动扩展到窗体顶边大 小,并且改变窗体大小时,btnNew的大小会随之改 变
7、)qbtnNew.Dock= System.Windows.Forms.DockStyle.Top;5)设置控件的Tab键顺序n控件的Tab键顺序决定了用户使用Tab键切换时的顺 序。默认情况下,控件的Tab键顺序就是控件添加到 窗体的中的顺序。n选择“视图|Tab键顺序”命令把窗体设计器切换到Tab 键顺序选择模式,再次选择该命令可以回到设计模式 。q在Tab顺序选择模式中,可以单击各个控件把它们的Tab键 顺序设置成单击控件的顺序n也可以通过属性窗口设置各个控件的TabIndex属性来 改变Tab键顺序n位于分组框中的控件的TabIndex也按照这个规则来修 改。控件的分类介绍n按钮类控件
8、n文本类控件n逻辑分组控件n滚动类控件n工具栏和状态栏n视图类控件n其他控件n控件种类繁多,在学习时注意对比和触类旁通 。按钮类控件n都从类ButtonBase派生,这个类提供了按钮类 控件通用的基本操作。q按钮控件q单选按钮控件q复选框控件按钮n使用Button类进行封装,包含有属性、方法和简化按钮互 用任务的事件。可以在按钮中显示文字或图像,还可以调 整按钮控件的显示方式。n使用Button类的公开属性控制按钮外观qFlatStyle。定义如何绘制控件的边缘,时一个枚举类型,可选值有 :Flat(平面的)、PopUp(由平面到凸起)、Standard(三维边 界)、System(根据操作系
9、统决定)qBackColor。指定控件的背景色,默认为KnownColor.Control(这 是操作系统为控件定义的默认颜色)。qForeColor。指定控件的文字颜色,默认为 KnownColor.ControlText。qText。控制显示在控件中的文字。qTextAlign,指定按钮文字的对齐方式;ImageAlign,指定图像的 对齐方式。q注意n可以在属性窗口设置属性,可以在代码中对属性进行设置。例如修改按钮背景 色,可以使用代码btnNew.BackColor=Color.Red; n“n一般使用默认的背景和前景控件颜色。n用Button类的公开属性控制按钮操作q这里讨论的属性对
10、各类控件普遍使用。这些属性都继承于Control 基类。qEnabled。激活(true)或禁用(false)按钮。禁用时无法选中按 钮,且按钮文字将变为系统禁用文本的颜色。qVisible。控件是否可见。有时隐藏控件比简单禁用控件更合适,例 如控件只用于特殊情况,就可以在一般情况下将它隐藏。这还能降 低窗体的杂乱性。nbtnNew.Visible=false;n也可以使用方法隐藏控件:btnNew.Hide();显示控件:btnNew.Show();n按钮事件qClick事件。单击按钮或是在按钮具有焦点时按下空格键都将触发 Click事件。在设计器中可以通过双击按钮来进入代码编辑器添加 Cl
11、ick事件的处理代码。n把按钮与DialogResult值联系起来q窗体DialogResult属性值可以为OK、Yes、No、Abort、Ignore、 Retry、Cancel、None等。当窗体作为对话框使用时,在窗体关闭 前这个值应该与窗体联系起来,并且在调用ShowDialog方法时还 应该将它作为结果返回。q可以使用按钮控件的DialogResult属性来为窗体设置DialogResult 属性。当该按钮用于关闭窗体时,DialogResult的值就将通过窗体 传递。ncloseButton.DialogResult = DialogResult.OK;单选按钮n使用RadioBu
12、tton类封装,通常用来执行多选 一的操作。单选按钮通常分组使用,在一个组 中,只能有一个按钮处于选中状态。n单选按钮属性q除了Button中讨论的一些属性之外,单选按钮还比 较常用的属性还有:nChecked属性,用来确定单选按钮是否被选择nAppearance属性,用来确定单选按钮的显示形式,有两 个可能值:Appearance.Button(显示为按钮), Appearance.Normal(正常显示)n单选按钮的常用事件qCheckedChanged事件。当单选按钮的Checked属 性发生变化时,会触发这个事件,可以使用这个事 件根据单选按钮的状态变化进行适当的操作。在设 计器中双击
13、单选按钮将进入代码编辑器中这个事件 的定义部分。qClick事件。在选中单选按钮的时候触发,要处理这 一事件,必须提供一个事件处理器,将在后面的章 节对这一技术进行讨论复选框n用CheckBox进行封装。复选框与单选按钮极为相似 ,只是复选框允许零个或多个选择。n复选框属性q也具有RadioButton中介绍的一些属性。qChecked属性,获取或设置复选框是否选中。但与单选按钮 不同之处是,复选框可以支持3种状态(增加一种不确定状 态)。这需要用到ThreeState属性,默认值为false,设为 true将激活第三种状态。qCheckState属性,用来判断或设置复选框状态,有三种可能 :
14、Checked,Unchecked,Indeterminate(未被选中也未被 清除,且显示禁用复选标记)。复选框处于选中或不确定状 态时,Checked属性都为true。q当复选框的Appearance属性设置成Button时,不确定状态是 平面按钮,选中状态是按下的按钮,未选定状态是凸起按钮 。n复选框事件qCheckedChanged事件,改变复选框Checked属性 时触发。在设计器中双击相应的复选框将进入代码 编辑器中这一事件的定义部分。qCheckStateChanged事件,改变复选框 CheckedState属性时触发。在属性窗口中选择这一 事件双击进入其代码编辑。n示例程序文
15、本类控件n文本类控件通常用来显示或输入信息,是构成 用户界面的最基本控件n文本框控件n标签控件n列表框控件n组合框控件文本框控件n用TextBox类进行封装,是按钮控件外最常使用的控 件,常用于接收文本输入。TextBox类派生于 TextBoxBase类。n默认情况下,文本框控件只接受单行文本,此时只能 水平改变控件大小而不能垂直改变。通过设置 TextBox的Multiline属性为true,可以使用多行文本框 。n文本框属性qText属性,获取用户输入到文本框中的文本。n例:string newItem newTextBox.Text;qTextLength属性,获取文本框控件中文本的长
16、度文本框属性(1)qLines属性,对于多行文本框,除了可以使用Text属性获取文 本外,还可以使用Lines属性,它返回一个字符串的数组,每 个数组元素对应一行文本。n注意,在Lines数组中的元素没有必要与文本框控件的物理行相 对应。如果允许文本换行,那么无论文本占了多少物理行,在 Lines数组中都只是一个元素。n可以在属性窗口中使用Lines属性为多行文本框提供初始文本。 在属性窗口中选择Lines属性,将显示一个说明为“”的小按钮 。单击它就会显示“字符串采集编辑器”对话框,在其中可以输 入控件文本。qReadOnly属性,当它设置为true时,只能浏览而不能修改文 本框中显示的内容。qMaxLength属性,设置文本框能输入的最大字符数。文本框属性(2)qWordWrap属性,选择每行的文本是可以扩展超出控件边缘 (false)或是在控件边界处自动换行(true),默认值为 true。 qScrollBars属性,指定是否使用以及使用怎样的滚动条。属 性值必须是枚举类型ScrollBars的值:None、Horizontal( 水平)、Vertical(垂直)、