首页 c#控件详解 教程

c#控件详解 教程

举报
开通vip

c#控件详解 教程`目录` 1.1 焦点与 Tab键序.................................................................................................... 2 1.2 Form....................................................................................................................... 4 1.3 Butt...

c#控件详解 教程
`目录` 1.1 焦点与 Tab键序.................................................................................................... 2 1.2 Form....................................................................................................................... 4 1.3 Button控件.......................................................................................................... 10 1.4 ListBox控件........................................................................................................ 10 1.5 ComboBox控件................................................................................................... 17 1.6 DateTimePicker控件.......................................................................................... 17 1.7 Label控件............................................................................................................ 21 1.8 LinkLabel控件.................................................................................................... 22 1.9 TextBox控件....................................................................................................... 25 1.10 PictureBox控件................................................................................................. 29 1.11 Timer控件......................................................................................................... 30 1.12 ProgressBar控件............................................................................................... 34 1.13 GroupBox控件.................................................................................................. 38 1.14 Panel控件.......................................................................................................... 39 1.15 RadioButton控件.............................................................................................. 39 1.16 CheckBox控件.................................................................................................. 44 1.17 TabControl控件................................................................................................ 44 1.18 ScrollBar控件................................................................................................... 46 常用控件 Visual C# 2005提供了很多控件用于开发Windows应用程序,在本章中将介绍 它们的常用属性、方法、事件及其具体应用。同时,部分实例将界面设计和代码编 写结合起来,开发出具有一定功能的Windows应用程序。 本章学习目标: (1)理解焦点与Tab键序的概念。 (2)熟练掌握窗体、命令按钮、列 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 框与组合框、DateTimePicker、标签(Label 和LinkLabel)、文本框、图片框、Timer、进度条、框架、面板、单选按钮和复选 框、TabControl 和滚动条等控件的常用属性、方法和事件。 1.1 焦点与 Tab键序 在 Windows 环境下向计算机输入数据时,首先需要选定待输入的位置,输入 完一条项目后,可以通过鼠标单击或者使用【Tab】键来改变待输入的位置。在Visual C# 2005中,称待输入的位置对应的对象具有焦点,而焦点在对象间移动的顺序称 为Tab键序。 1.1.1 焦点 在学习 Visual C# 2005控件之前,首先要了解与控件紧密相关的焦点的概念。 焦点是控件接收鼠标或键盘输入的能力。当对象具有焦点时,可以接收用户的输入, 例如:为登录QQ而输入QQ密码时,焦点就在等待输入QQ密码的文本框上。 只有当控件的Enabled和Visible属性值均为True时,才可以接收焦点。Enabled 属性决定控件是否响应由用户产生的事件,如键盘、鼠标事件;Visible属性决定控 件是否可见。但是并非所有的控件都具有接收焦点的能力,如:GroupBox、 PictureBox、Timer等控件都不能接收焦点。 1.1.2 设置焦点 使用以下方法可以使对象获得焦点: (1)运行时用鼠标选择对象。 (2)运行时用快捷键选择对象。 在代码中使用Focus()方法,其语法格式为: //********************************************************************** <对象>.Focus(); //********************************************************************** 如:“TextBox.Focus();”,该代码的功能是将焦点赋予文本框TextBox。大多数 控件得到和失去焦点时的外观是不相同的,如: (1)按钮控件得到焦点后周围会出现一个虚线框。 (2)文本框得到焦点后会出现闪烁的光标。 1.1.3 程序运行时改变焦点的方法 程序运行时,可以使用下列方法之一改变焦点: (1)用鼠标单击对象; (2)使用快捷键选择对象; (3)按Tab键或Shift+Tab键在当前窗体的各对象之间巡回移动焦点。 1.1.4 Tab键序 Tab键序是指当用户按下Tab键时,焦点在控件间移动的顺序,每个窗体都有 自己的Tab键序。 默认状态下的Tab键序跟添加控件的顺序相同。例如在窗体上先后添加了3个 命令按钮Button1、Button2 和Button3,则程序启动后Button1首先获得焦点,当 用户按下Tab键时,焦点依次转移向Button2、Button3,然后再回到Button1,如 此循环。具有焦点的控件有两个控制Tab键序的属性,分别是TabIndex和TabStop 属性。 1. TabIndex 属性 TabIndex属性决定控件接收焦点的顺序,Visual C# 2005按照控件添加的顺序 依次将0、1、2、3、…… 分配给相应控件的TabIndex 属性。用户在运行程序时 按下Tab 键, 焦点将根据TabIndex 属性值在控件之间转移。如果希望更改Tab 键序,可以通过设置TabIndex 属性来更改。 例如希望焦点直接从Button1 转移到Button3,然后再到Button2,则应该将 Button2 和Button3的TabIndex属性值互换。 注意:不能获得焦点的控件及无效或不可见的控件,不具有TabIndex 属性, 因而不包含在Tab键序中,按Tab键时这些控件将被跳过。 2. TabStop属性 TabStop属性决定焦点是否能够在该控件上停留。它有True和False两个属性 值,默认为True;如果设为False,则焦点不能停在该控件上。 例如希望Button2 不能接收焦点,只要将Button2 的TabStop 属性设为False 即可,(代码为:Button2.TabStop = false;),这样在按Tab键时将跳过Button2控 件,但是它仍然保留在Tab键序中的位置。 1.2 Form 窗体(Form)是Windows应用程序界面的最大容器,它可以容纳其他的一些 控件,使用它和其他的Windows 控件可以设计出美观的用户界面,下面将介绍窗 体的生成方法及其常用的属性、方法和事件。 1.2.1 生成Form 每当用户创建一个新的Windows应用程序时,Visual C# 2005会自动生成一个 名为Form1的窗体,如图1-1所示。可以通过鼠标的拖拽方法改变窗体的大小,也 可以通过窗体的Size属性来修改。 图 1-1 自动生成的Form1窗体 很多情况下,一个窗体满足不了应用程序的要求,如学生信息管理应用程序, 既要对学生的基本情况进行管理,又要对学生的修读课程以及成绩进行管理等,这 时仅使用一个窗体是不合理的。 可以通过【项目】→【添加Windows 窗体】菜单命令来为应用程序添加一个 新的窗体,如图1-2所示。 图 1-2 添加窗体 在【名称】后面的文本框中输入新窗体的名称,单击【打开】按钮,新的窗体 即生成了,同时可以看到窗体设计器上方多出了一个新生成窗体的选项卡。 1.2.2 Form常用的属性、方法与事件 在 Visual C# 2005中,一切都是对象,窗体当然也不例外,下面就介绍窗体的 一些常用的属性、方法和事件。 1. MaximizeBox 和MinimizeBox 属性 MaximizeBox 和MinimizeBox 属性用于确定窗体标题栏的右上角的最大化、 最小化按钮是否可用。它们均有两个值:True和False。True表示最大化、最小化 按钮可用,为默认值;False 表示不可用。如图1-3 表示窗体的最大化按钮不可用 的情况,即将其MaximizeBox属性设置成了False。 图1-3 最大化按钮不可用 可以直接在窗体对象的属性窗口中找到“MaximizeBox”属性,然后直接在其 中进行设置,如图1-4所示。 图 1-4 设置MaximizeBox属性 也可以在程序运行时,使用代码来设置窗体的MaximizeBox 属性,其结果与 在属性窗口中直接设置一致。例如: //********************************************************************** this.MaximizeBox = false; //********************************************************************** 2. Size 属性 Size 属性又分成Width 和Height 两个属性(分别表示窗体的宽度和高度), 用于设置窗体的大小,以像索为单位。一般情况下可以通过鼠标的拖拽来控制窗体 的大小,但如果要精确控制窗体的大小,则应该使用Size 属性。如将Size 属性值 设为“300,200”,则表示该窗体的宽为300像素、高为200像素。 3. StartPosition属性 StartPosition属性用于确定窗体第一次出现时的位置。它提供了5个属性值: 默认的属性值为0-Manual,窗体的初始位置由Location属性确定;1-CenterScreen, 窗体的初始位置为屏____________幕中心;2-WindowsDefaultLocation,窗体定位在Windows 的默认位置,其尺寸在窗体大小中指定;3-WindowsDefaultBounds,窗体定位在 Windows 的默认位置,其边界也由Windows 默认确定;4-CenterParent,窗体在 其父窗体中居中。 4. AutoSizeMode 属性 AutoSizeMode 属性用于确定用户是否可以使用鼠标托拽来改变窗体的大小, 它有“GrowOnly”和“GrowAndShrink”两个值,“GrowOnly”为默认值,表示 用户可以使用鼠标托拽来改变窗体的大小,而“GrowAndShrink”则表示用户不可 以使用鼠标托拽来改变窗体的大小。 5. Icon属性 Icon属性用于设置窗体左上角的小图标,可以直接在属性窗口中设置,也可以 通过代码设置,使用代码设置的语法为: System.Drawing.Bitmap.FromFile(IconPath) 说明:“IconPath”表示Icon图标的存放路径。 6. Font属性 Font属性用于设置窗体上字体的样式、字形、大小等。若选择Font属性,单 击该属性右边的按钮,将弹出【字体】对话框如图1-5所示。 图1-5 【字体】对话框 7. Text属性 Text 属性用于设置窗体标题栏显示的文本,其默认值为“Form”加上一个整 数,如“Form1”、“Form2”等。 8. Enabled属性 Enabled属性用于确定窗体是否响应用户的事件。它有True和False两个值, 其默认值为True,如果设为False,则除了可以移动该窗体的位置、调整大小、关 闭或者最大化最小化外,不能操作窗体内的控件等,这些控件对用户的操作完全不 予响应。使用代码设置该属性的语法为: //********************************************************************** Form.Enabled = true; // 或者Form.Enabled = false; //********************************************************************** 9. Visible 属性 Visible 属性表示窗体是否可见,它有True 和False 两个值,默认值为True; 如果设为False,则窗体不可见。使用代码设置该属性的语法为: //********************************************************************** Form.Visible= true; // 或者Form.Visible= false; //********************************************************************** 10. ControlBox 属性 ControlBox属性用于控制当程序运行时,窗体的标题栏中是否显示关闭、最大 化和最小化按钮,是否显示系统图标和系统菜单。它有True和False两个属性值, 图1-6分别表示该属性值为True和False的情况。 图 1-6 具有与不具有系统菜单的窗体 11. Show 方法 Show 方法表示显示窗体,其语法为: //********************************************************************** Form.Show(); // Form 为窗体名称 //********************************************************************** 12. Hide 方法 Hide方法表示隐藏窗体,其语____________法为: //********************************************************************** Form.Hide(); // Form 为窗体名称 //********************************************************************** 13. Load事件 Load 为载入事件,当窗体载入时触发该事件,并执行相应的代码。例如运行 某应用程序时,窗体Form1显示,则触发了Form1的Load事件。 14. Activated事件 Activated 为激活事件,当窗体被激活时触发该事件,并执行相应的代码。例 如在不同窗体之间进行切换时,变成活动窗体触发了该窗体的Activated事件。 15. Click 事件 Click为单击事件,单击该窗体时触发该事件,并执行相应的代码。 1.3 Button控件 命令按钮(Button)是一种很常用的控件,主要用于接收用户的单击(Click) 事件。当用户用鼠标单击或用Enter 键按下命令按钮时,都会触发Click事件,从 而执行相应的代码,达到某种特定操作的目的。 命令按钮具备控件所共有的基本属性,这里不在赘述,仅介绍一下Text 属性。 Text 属性用于设置显示在命令按钮上的文本,可以在文本前面加上“&”字符来设 置快捷键(热键)。例如:将按钮的Text 属性设为“&OK”,该按钮的效果为: , 则“O”将被作为热键,按下Alt+O将触发命令按钮的Click事件。 1.4 ListBox控件 如果需要向用户提供包含一些选项和信息的列表,由用户从中进行选择,可以 使用列表框(ListBox)和组合框(ComboBox)。但两者在使用中是不相同的。 (1)列表框:任何时候都能看到多个选项; (2)组合框:平时只能看到一个选项,单击组合框右端的下拉箭头可以打 开多个选项的列表。 本节介绍列表框控件,组合框控件将在下一节进行详细的介绍。 1.4.1 ListBox的常用属性、方法和事件 列表框控件通过显示多个选项,供用户选择其中一项,达到与用户对话的目的。 如果选项较多,超出控件显示范围,则会自动加上垂直滚动条。列表框控件常用的 属性、方法和事件如下。 1. Items 属性 Items 属性表示列表框的列表集合,单击右边的按钮可以编辑该列表框的 列表项,如图1-7所示(列表项1~12 表示一年中的12个月)。 图 1-7 列表框的列表项字符串编辑器 2. SelectedIndex属性 SelectedIndex属性返回选中的列表项的索引号。列表框中的每一个列表项都对 应着一个索引号,第一项对应的索引号为0、第二项的为1、第三项的为2、第四项 的为3、……,依此类推。例如: //********************************************************************** if(listBox.SelectedIndex == 6) // 索引号6表示第7项 { MessageBox.Show("该月属于秋季"); // 7月份为秋季 } //********************************************************************** 3. SelectedItem 属性 SelectedItem属性返回选中的列表项的文本内容。例如: //********************************************************************** if(listBox.SelectedItem.ToString() == "6") // 选中6月份 { MessageBox.Show("该月属于夏季"); // 6月份为夏季 } //********************************************************************** 4. Count属性 Count属性用于返回列表框中列表项的个数。表达式“listBox.Items.Count-1” 表示列表中最后一项的索引号。 5. Sorted属性 Sorted 属性控制列表项是否按字母实现排序。它有True 和False 两个值,默 认为False,按列表项的添加顺序排序;如果设为True,则按字母顺序排序。 6. Add方法 Add方法把一个项目加入到列表框中。其语法格式为: ListBox.Items.Add(<字符串表达式>) <字符串表达式>表示要添加的列表项。当Sorted 属性为False 时,用Add 方 法添加的项被放置在末尾;当Sorted属性为True时,则按字母顺序排序。 例如,希望在如图1-7所示的列表框listBox中添加一个列表项“13”,则可以 使用如下代码实现: //********************************************************************** ListBox.Items.Add("13"); //********************************************************************** 7. Insert方法 Insert方法把一个项目加入到列表框中的指定索引处。其语法格式为: ListBox.Items.Insert(<索引号>,<字符串表达式>) 例如下面的语句表示将“13”作为列表项的第3 项(索引号为2,即表示第3 项)添加到列表框中。 //********************************************************************** ListBox.Items.Insert(2, "13"); //********************************************************************** 注意:Insert方法只有在Sorted属性为False时才能把列表项添加到指定的位 置。 8. Clear 方法 Clear方法可以移除列表框中所有的列表项。其语法格式为: //********************************************************************** ListBox.Items.Clear(); //********************************************************************** 9. Remove 方法 Remove方法可以移除列表框中指定内容的列表项。其语法格式为: ListBox.Items.Remove(<字符串表达式>); 例如下面的语句运行的结果是从列表框ListBox中移除“10”列表项。 //********************************************************************** ListBox.Items.Remove("10"); //********************************************************************** 10. RemoveAt方法 RemoveAt方法可以移除列表框中指定索引号的列表项。其语法格式为: ListBox.Items.RemoveAt(<索引号>); 例如下面的语句运行的结果是从列表框ListBox中移除索引号为“10”列表项。 //********************************************************************** ListBox.Items.RemoveAt(10); //********************************************************************** 11. IndexOf方法 IndexOf 方法用于返回指定的项在集合中的索引。例如 “listBox.Items.IndexOf("8")”的值应当为7,表示列表项“8”的索引号。 12. Click 事件 单击列表项时触发该事件。 13. SelectedIndexChanged事件 SelectedIndexChanged事件是列表框最重要的一个事件,当选中的列表项发生 改变时(即索引号发生改变)触发该事件。 1.4.2 ListBox使用示例 【例1-1】从列表框中选择月份,在文本框中显示选中的月份,单击【确定】 按钮后显示该月份属于哪个季节。 (1)界面设计如图1-8所示。 图 1-8 列表框使用示例 (2)界面对象属性设置如表1-1所示。 表 1-1 窗体和各控件的属性设置 控件类型控件名称属性 设置结果 Form Form1 Text 例1-1 GroupBox GroupBox1 Text 请选择月份: TextBox1 Name txtMonth ReadOnly True Name txtResult TextBox TextBox2 ReadOnly True ListBox ListBox1 Name lstMonth Items 依次添加“1”、 “2”、“3”、“4”、 “5”、“6”、“7”、 “8”、“9”、“10”、 “11”、“12” Button Button1 Name btnOk Text 对应季节 (3)编写代码。 首先列表框lstMonth的SelectedIndexChanged事件代码如下: //********************************************************************** // 列表框lstMonth的SelectedIndexChanged事件代码 //********************************************************************** private void lstMonth_SelectedIndexChanged(object sender, EventArgs e) { txtMonth.Text = lstMonth.SelectedItem.ToString(); } //********************************************************************** //********************************************************************** 然后编写【确定】按钮的Click事件代码如下: //********************************************************************** // 【确定】按钮的Click事件代码 //********************************************************************** private void btnOk_Click(object sender, EventArgs e) { switch (lstMonth.SelectedIndex) { case 0: case 1: case 2: txtResult.Text = "您所选择的季节是春季"; break; case 3: case 4: case 5: txtResult.Text = "您所选择的季节是夏季"; break; case 6: case 7: case 8: txtResult.Text = "您所选择的季节是秋季"; break; default: txtResult.Text = "您所选择的季节是冬季"; break; } } //********************************************************************** //********************************************************************** (4)运行程序,结果如图1-9所示。 图1-9 运行结果 1.5 ComboBox控件 组合框(ComboBox)是综合了文本框和列表框特征的一种控件。它兼有文本 框和列表框的功能,可以像文本框一样,用键入的方式选择项目,但输入的内容不 能自动添加到列表中;也可以在单击后,选择所需的项目。若选中了某列表项, 则该项的内容会自动显示在文本框中。组合框比列表框占用的屏幕空间要小,如图 1-10所示。列表框的属性基本上都可用于组合框。 图 1-10 组合框控件 另外值得注意的是,ComboBox控件提供了一个名为“DropDownStyle”的属 性,指定组合框的外观和功能,它有“Simple”、6{“DropDown”和“DropDownList” 三个属性值,默认值为“DropDown”。若要使得组合框不能用键入的方式选择项目 (即组合框中的文本内容不可编辑),则应当将“DropDownStyle”属性设为 “DropDownList”。 1.6 DateTimePicker控件 DateTimePicker 控件包含一个带有滚动箭头的图形化日历,使用它能够很方便 的在应用程序中获取日期和时间。设计应用程序时的DateTimePicker控件如图1-11 所示。 图 1-11 设计时的 DateTimePicker 控件 在 ShowUpDown 属性(在下文中有详细的介绍)值为False 的情况下, DateTimePicker 控件有两种操作模式: (1)单击下拉式日历右边的来选择一个日期。单击下拉日期列表中与日 期相关的和 按钮可以选择不同的月份; (2)选中一个字段(例如:月、日、年等等)后,使用键盘键入相应的值的 方式来设置它的值。 图 1-12 运行时的DateTimePicker 控件 在 ShowUpDown 属性值为True 的情况下,则DateTimePicker 控件不具有下 拉日期,但具有上下调节箭头,如图1-13所示。这是的DateTimePicker 控件同样 有两种操作模式: (1)选中一个字段(例如:月、日、年等等)后,按下控件右边的上下调节 箭头来设置它的值; (2)选中一个字段(例如:月、日、年等等)后,使用键盘键入相应的值的 方式来设置它的值。 图 1-13 具有上下调节箭头的DateTimePicker 控件 1.6.1 DateTimePicker 控件的常用属性 DateTimePicker 控件的常用属性如下: 1. Value 属性 Value属性表示DateTimePicker控件当前的日期/时间值。若当前日期为“2008 年3月3日10点12分28秒”,则表达式“DateTimePicker.Value”的值为“2008-3-3 10:12:28”。 2. Date属性 Date属性用于获取DateTimePicker控件当前的日期/时间值的日期部分。若当 前日期为“2008年3月3日10点12分28秒”,则表达式“DateTimePicker.Value.Date” 的值为“2008-3-3”。 3. Year 属性 Year属性用于获取DateTimePicker控件当前的日期/时间值的年份部分。若当 前日期为“2008年3月3日10点12分28秒”,则表达式“DateTimePicker.Value.Year” 的值为“2008”。 4. Month属性 Month属性用于获取DateTimePicker控件当前的日期/时间值的月份部分。若 当前日期为“2008 年3 月3 日10 点12 分28 秒”, 则表达式 “DateTimePicker.Value.Month”的值为“3”。 5. Day属性 Day 属性表示DateTimePicker 控件当前的日期/时间值为该月的第几天。若当 前日期为“2008年3月3日10点12分28秒”,则表达式“DateTimePicker.Value.Day” 的值为“3”。 6. Hour 属性 Hour属性用于获取DateTimePicker 控件当前的日期/时间值的小时部分。若当 前日期为“ 2008 年3 月3 日10 点12 分28 秒”, 则表达式 “DateTimePicker.Value.Hour”的值为“10”。 7. Minute 属性 Minute属性用于获取DateTimePicker控件当前的日期/时间值的分钟部分。若 当前日期为“2008 年3 月3 日10 点12 分28 秒”, 则表达式 “DateTimePicker.Value.Minute”的值为“12”。 8. Second属性 Second属性用于获取DateTimePicker控件当前的日期/时间值的秒钟部分。若 当前日期为“2008 年3 月3 日10 点12 分28 秒”, 则表达式 “DateTimePicker.Value.Second”的值为“28”。 9. DayOfWeek、DayOfYear 属性 DayOfWeek 表示DateTimePicker 控件当前的日期/时间值是星期几, DayOfYear属性表示DateTimePicker控件当前的日期/时间值为该年的第几天。若 当前日期为“2008 年3 月3 日10 点12 分28 秒”, 则表达式 “ DateTimePicker.Value.DayOfWeek ” 的值为“ Monday ”; 而表达式 “DateTimePicker.Value.DayOfYear”的值为“63”。 10. ShowUpDown属性 ShowUpDown属性指定了DateTimePicker控件的显示模式,其默认值为False, 表示下拉日历模式。若设置为True,则表示DateTimePicker控件显示数字显示框。 11. MaxDate 属性 MaxDate属性表示可以选择的最大日期。 12. MinDate属性 MaxDate属性表示可以选择的最小日期。 13. CustomFormat属性 CustomFormat属性用于格式化在DateTimePicker控件中显示的日期和(或) 时间的自定义格式字符串。 1.6.2 DateTimePicker 控件的常用方法 DateTimePicker 控件的常用方法如下: 1. ToLongDateString方法 将 DateTimePicker 控件的值转换为其等效的长日期字符串表示形式。若当前 日期为“ 2008 年3 月3 日10 点12 分28 秒”, 则表达式 “DateTimePicker.Value.ToLongDateString()”的值为“2008年3月3日”。 2. ToLongTimeString方法 将 DateTimePicker 控件的值转换为其等效的长时间字符串表示形式。若当前 日期为“ 2008 年3 月3 日10 点12 分28 秒”, 则表达式 “DateTimePicker.Value.ToLongTimeString ()”的值为“10:12:28”。 3. ToShortDateString方法 将 DateTimePicker 控件的值转换为其等效的短日期字符串表示形式。若当前 日期为“ 2008 年3 月3 日10 点12 分28 秒”, 则表达式 “DateTimePicker.Value.ToShortDateString ()”的值为“2008-3-3”。 4. ToShortTimeString方法 将 DateTimePicker 控件的值转换为其等效的短时间字符串表示形式。若当前 日期为“ 2008 年3 月3 日10 点12 分28 秒”, 则表达式 “DateTimePicker.Value.ToShortTimeString ()”的值为“10:12”。 1.7 Label控件 标签控件有两种,一种是普通标签(Label),它主要用于显示不希望被用户修 改的文本,因为Label控件不能由用户直接对其进行编辑,另一种是带链接的标签 (LinkLabel),它主要用于设计链接。 本节介绍Label控件常用的属性和事件,前面在介绍窗体时介绍过的如Text、 Enabled、Font 等属性,Label 控件同样具有这些属性,且其用法也类似,这里不 再重复介绍。 1. AutoSize 属性 AutoSize属性控制Label 控件是否根据显示的文本自动调整控件的大小。它有 True 和False两个属性值,默认值为True;如果设为False,表示控件的大小不会 随文本的改变而变化。 2. BorderStyle 属性 BorderStyle 属性用于设置标签边框的样式。它有3 个属性值:0-None,表示 没有边框;1-FixedSingle,标签具有单线边框;2-Fixed3D,标签具有3D样式的边 框,设为该样式的标签具有立体感。 3. Visible 属性 Visible 属性表示该控件是否可见,同样,它也有True 和False 两个属性值, True 为默认值,设为False则标签不可见。 4. Click、DoubleClick 事件 Click为单击事件;DoubleClick为双击事件,双击标签时发生该事件,并执行 相应的程序代码。 5. MouseHover 事件 当在鼠标指针悬停在控件上时发生MouseHover 事件。 1.8 LinkLabel控件 LinkLabel 控件使用户可以向Windows 窗体应用程序添加Web 样式的超级链 接。一切可以使用Label控件的地方,都可以使用LinkLabel控件;还可以将文本 的一部分设置为指向某个文件、文件夹或Web页的超级链接。 1.8.1 LinkLabel控件常见的属性 LinkLabel 控件除了具有Label 控件的所有属性、方法和事件以外,还有一些 自己独有的属性。 1. LinkArea 属性 LinkArea 属性用于获取或设置文本中被作为超级链接的区域。例如: LinkLabel控件的Text属性为“Visual C# 2005”,现在要为“C#”设置链接,因为 “C#”为该字符串的第8到9个字符,所以应将LinkLabel控件的LinkArea 属性 设为____________“8,9”。 2. LinkColor 属性 LinkColor 属性用于获取或设置超级链接处于默认状态下的颜色。 3. LinkVisited属性 一般情况下,超级链接未被访问与被访问过的状态是不相同的。LinkVisited 属性用于确定超级链接是否呈现已访问状态;它有True 和False 两个值。True 表 示已被访问,False为默认状态,表示没有被访问过。 4. LinkVisitedColor 属性 LinkVisitedColor用于确定当LinkVisitied为真时超级链接的颜色。 5. ActiveLinkColor 属性 ActiveLinkColor 用于确定当用户单击超级链接时该链接的颜色。 6. LinkClicked事件 当用户选择链接时触发该事件,是LinkLabel控件最重要的事件。 1.8.2 LinkLabel控件使用示例 【例1-2】设计用户界面如图1-14 所示,窗体上有两个超级链接,运行时单 击可分别打开搜狐主页和启动Outlook发送电子邮件。 (1)用户界面设计如图1-14所示。 图 1-14 程序界面 (2)窗体的Text 属性设为“例1-2”,将LinkLabel1 和LinkLabel2 的Name 属性分别设为:llblSohu 和llblEmail;再两者的Text 属性分别设为“打开搜狐主 页:www.sohu.com”和“联系作者:xlingyun@126.com”,LinkArea 属性分别设 为“7,12”和“5,16”,这样超连接区域如上图所示,分别为“www.sohu.com”和 “xlingyun@126.com”。 (3)编写代码。 首先编写llblSohu的LinkClicked 事件代码如下: //********************************************************************** // llblSohu的LinkClicked 事件代码 //********************************************************************** private void llblSohu_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { System.Diagnostics.Process.Start("IEXPLORE.EXE","www.sohu.com"); // 也可以写成:System.Diagnostics.Process.Start("www.sohu.com"); // 这时将使用系统当前默认的浏览器打开搜狐主页 } //********************************************************************** //********************************************************************** 然后编写llblEmail的LinkClicked 事件代码如下: //********************************************************************** // llblEmail的LinkClicked 事件代码 //********************************************************************** private void llblEmail_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { System.Diagnostics.Process.Start("mailto:xlingyun@126.com"); } //********************************************************************** //********************************************************************** (4)运行程序,单击LinkLabel1的超链接部分“www.sohu.com”,启动网易 主页;单击LinkLabel2的超链接部分“xlingyun@126.com”,则启动Outlook。如 图1-15所示。 图 1-15 运行结果 1.9 TextBox控件 文本框(TextBox)控件,与标签控件一样,它也能显示文本。但是,TextBox 控件可以由用户直接对其进行编辑,这是它与标签控件最明显的区别。从人机对话 的角度来看,大多数程序,都用文本框控件来接收信息,而常用标签框控件来向用 户反馈信息。文本框常用的属性、方法和事件如下: 1. Text属性 Text 属性用于返回或设置文本框的文本内容。设置时可以使用属性窗口,也可 以使用代码,代码示例如下: //********************************************************************** TextBox.Text = "Visual C# 2005"; // TextBox为控件名称,设置其文本内 容 //********************************************************************** 2. MaxLength属性 MaxLength属性用于控制文本框输入字符串的最大长度是否有限。默认值为0, 表示该文本框中的字符串长度只受系统内存的限制;若设为大于0的整数,则该整 数表示该文本框能够输入的最大字符串长度。设置时可以使用属性窗口,也可以使 用代码,代码示例如下: //********************************************************************** TextBox.MaxLength = 100; // TextBox中最多只能接收100 个 字符 //********************************************************************** 3. MultiLine 属性 MultiLine 属性控制文本框中的文本是否多行显示。有True 和False 两种属 性值,默认为False,以单行形式显示文本;如果为True,则以多行形式显示。 4. ScrollBars 属性 ScrollBars 属性设置文本框是否有垂直或水平滚动条。它有四种属性值: 0-None,没有滚动条;1-Horizontal,文本框有水平滚动条;2-Vertical,文本框具 有垂直滚动条;3-Both,文本框既有水平滚动条又有垂直滚动条。设置时可以使用 属性窗口,也可以使用代码,代码示例如下: //********************************************************************** TextBox.ScrollBars = ScrollBars.Both; // TextBox具有水平和垂直滚动条 //********************************************************************** 注意:显然,只有当MultiLine属性为True时,将ScrollBars属性设置为1、 2或3才有效。 5. PasswordChar 属性 PasswordChar 属性设置是否在文本框中显示用户键入的字符。如果将该属性 值设为某一字符,那么无论用户键入什么,在文本框中均显示该字符。 例如:将该属性设为“*”,则在文本框中只显示“*”,即最终用户无法知道文 本的内容,可以起到口令的作用。设置时可以使用属性窗口,也可以使用代码,代 码示例如下: //********************************************************************** TextBox.PasswordChar = "*"; // 设置TextBox的密码字符为"*" //********************************************************************** 注意:只有当MultiLine属性为False时,该属性才有效。 6. SelectedText属性 SelectedText 属性用于返回在文本框中选择的文本。要在程序运行时操作当前 选择的文本,可以通过该属性来处理。例如要将TextBox 中所选择的文本替换为 “Visual Basic 2005”可以使用以下代码: //********************************************************************** TextBox.SelectedText = "Visual C# 2005"; //********************************************************************** 如果要删除选择的文本,只需将空字符串赋给它就行了。 7. ReadOnly属性 ReadOnly属性用于设置文本框中的文本内容是否只读。它有True和False两 个值,默认为False,为可读写;如果设为True,则该文本框的文本内容只读,不 可编辑,同时该文本框变成灰色。设置时可以使用属性窗口,也可以使用代码,代 码示例如下: //********************************************************************** TextBox.ReadOnly = true; // TextBox是只读的 //********************************************************************** 8. SelectionStart属性 SelectionStart 属性用于返回或设置用户在文本框中选择的文本的第一个字符 的位置。字符位置的编号从0开始,当没有选择文本时,返回当前鼠标指针的位置。 9. SelectionLength属性 SelectionLength属性用于返回或设置文本框中被选择的文本长度。当没有选择 文本时,该属性值为0。 若有文本框,其中有“Visual C# 2005”字样,则语句: //********************************************************************** TextBox.SelectionStart = 4; // 用户在TextBox 中选择文本的第一个字符的 位置为4 TextBox.SelectionLength = 9; // 用户在TextBox中选择文本的长度为9 //********************************************************************** 执行后结果为: 10. SelectAll 方法 SelectAll 方法用于选定文本框中的所有内容。若有文本框 ,其中有“Visual C# 2005”字样,则语句: //********************************************************************** TextBox.SelectAll(); //********************************************************************** 执行后结果为: 11. TextChanged事件 当文本框的文本内容发生改变时触发该事件,如: //********************************************************************** private void textBox1_TextChanged(object sender, EventArgs e) { …… } //********************************************************************** 12. KeyDown事件 KeyDown 事件在用户按下一个ASCII 字符键时发生,该事件被触发时,被按 键的ASCII码将自动传递给事件过程参数e的KeyValue属性,通过访问该参数, 即可获知用户按下了哪个键。如: //********************************************************************** if(e.KeyValue == 13) // 等价于:if(e.KeyCode == Keys.Enter) //********************************************************************** 上述两个语句是等价的,用于判断用户是否按了Enter 键(Enter 键的十进制 ASCII码值为13)。 13. KeyPress 和KeyUp事件 KeyPress 事件在用户按下和松开一个键时被触发,KeyUp 事件则是在用户松 开一个键时被触发。所以当用户按下并松开一个键时,则会在对象上依次触发 KeyDown、KeyUp和KeyPress事件。 1.10 PictureBox控件 图片框(PictureBox)控件,它主要用于显示图片。它最重要的属性是Image 属性,该属性用于设置显示在图片框中的图片,可以单击右边的按钮,通过弹 出的【选择资源】对话框进行设置,如图1-16所示。 图1-16 【选择资源】对话框 【选择资源】对话框有“本地资源”和“项目资源文件”两个选项,选中相应 的选项和需要的图片后单击【导入】按钮,即可设置需要在图片框中显示的图片。 当然,也可以使用代码设置,其语法格式为: //********************************************************************** PictureBox.Image = System.Drawing.Bitmap.FromFile(PicturePath); //********************************************************************** 其中PicturePath表示图片的存放路径,如“D:\\QQ.bmp”。 1.11 Timer控件 时钟(Timer)控件,也称为计时器控件,主要用来计时,通过计时处理,可 以实现各种复杂的操作,如延时、动画等。 1.11.1 Timer控件常用的属性与事件 Timer控件的属性不是很多,最常用的有两个,Enabled属性和Interval属性。 Timer控件的事件只有一个:Tick事件。 1. Enabled属性 Enabled属性用于设置Timer控件是否工作,它有True和False两个值,True 为工作状态,False为暂停,默认为False。Timer控件在程序运行中不可见。 //********************************************************************** Timer.Enabled = false; // 计时器停止工作 //********************************************************************** 2. Interval 属性 Interval属性是Timer控件一个非常重要的属性,表示两个计时器事件(即Tick 事件)之间的事件间隔。其值是一个介于0~64767 之间的整数,以毫秒为单位, 所以最大的时间间隔约为1.5分钟,设置时可以使用属性窗口,也可以使用代码, 代码示例如下: (1)如果需要屏蔽计时器,则将Interval属性设为0(或者将计时器的Enabled 属性设为False); //********************************************************************** Timer.Interval = 0; //********************************************************************** (2)如果需要每个0.5秒触发一个计时器事件,应将Interval属性设为500。 //********************************************************************** Timer.Interval = 500; //********************************************************************** 3. Tick 事件 在 Enabled为True的情况下,Timer每隔Interval毫秒触发一次Tick事件, 如: //********************************************************************** private void timer1_Tick(object sender, EventArgs e) { …… } //********************************************************************** 1.11.2 Timer控件使用示例 【例1-3】设计一个滚动字幕,使“欢迎使用图 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 馆管理系统”字样从左至右 地反复移动。 (1)建立程序界面如图1-17所示。 图1-17 程序界面 双击工具栏中的Timer控件,即为窗体添加一个该控件,这时在窗体下方的组 件面板上出现一个Timer控件如图1-18所示。 图 1-18 Timer控件 (2)界面对象属性设置如表1-2所示。 表 1-2 窗体和各控件的属性设置 控件类型控件名称属性 设置结果 Form Form1 Text 例1-3 Label Label1 Name lblShow Text 欢迎使用图书馆 管理系统 Button Button1 Name btnStart Text 开始 Timer Timer1 Name tmrShow Interval 100 (3)编写代码。 首先编写【确定】按钮的Click事件代码如下: //********************************************************************** // 【确定】按钮的Click事件代码 //********************************************************************** private void btnStart_Click(object sender, EventArgs e) { if (btnStart.Text == "开始") { btnStart.Text = "&S 暂停"; // 设置此时的快捷键为Alt+S tmrShow.Enabled = true; } else if (btnStart.Text == "&S 暂停") { btnStart.Text = "&C 继续"; // 设置此时的快捷键为Alt+C tmrShow.Enabled = false; } else { btnStart.Text = "&S 暂停"; tmrShow.Enabled = true; } } //********************************************************************** //********************************************************************** 然后编写Timer控件的Tick事件代码如下: //********************************************************************** // Timer控件的Tick事件代码 //********************************************************************** private void tmrShow_Tick(object sender, EventArgs e) { Form1 newForm1 = new Form1(); if (lblShow.Left + lblShow.Width > 0) { lblShow.Left = lblShow.Left - 20; } else { lblShow.Left = newForm1.Size.Width; // 移出则从头开始 } } //********************************************************************** //********************************************************************** (4)运行程序,结果如图1-19所示。 图 1-19 滚动字幕程序运行结果 1.12 ProgressBar控件 进度条(ProgressBar)控件通过显示一系列水平排列的小方块来指示操作的 进度,如保存Word文件时在状态栏中就会出现一个指示保存进度的进度条。 当操作需要一段时间才能完成时,如果没有提示,用户可能会误以为程序没有 响应,而进行不合理的操作,进度条控件通过视觉提示解决这个问题。 1.12.1 ProgressBar控件常用的属性和方法 进度条常用的属性和方法如下: 1. Step属性 Step属性表示进度条的步长,即每次调用PerformStep方法时进度前进的单位 数。 2. Minimum 属性 Minimum 属性表示进度条正使用的范围下限,即Value 的最小值,默认值为 “0”。 3. Maximum 属性 Maximum 属性表示进度条正使用的范围下限,即Value 的最大值,默认值为 “100”。 4. Value 属性 Value属性表示进度条当前所处的进度(当前值),必须处在最小值(Minimum) 和最大值(Maximum)的范围内。 5. PerformStep方法 PerformStep方法使进度条的显示进度向前延伸,每次的延伸量由ProgressBar 控件的Step属性值决定。 1.12.2 ProgressBar控件使用示例 【例1-4】按选定的时间完成ProgressBar控件的进度指示。 (1)用户界面设计如图1-20所示。 图 1-20 程序界面 (2)界面对象属性设置如表1-3所示。 表 1-3 窗体和各控件的属性设置 控件类型控件名称属性 设置结果 Form Form1 Text 例1-4 ProgressBar ProgressBar1 Name prgTime Button1 Name btn2 Text 2秒钟 Button2 Name btn5 Text 5秒钟 Name btn10 Button Button3 Text 10秒钟 然后为应用程序添加一个Timer控件,并将其Name属性设为“tmrPrg”。 (3)编写代码。 首先编写【2秒钟】按钮的单击事件代码如下: //********************************************************************** // 【2秒钟】按钮的单击事件代码 //********************************************************************** private void btn2_Click(object sender, EventArgs e) { prgTime.Value = 0; tmrPrg.Interval = 200; // 每200毫秒触发一次Timer控件的Tick事件 tmrPrg_Tick(sender, e); } //********************************************************************** //********************************************************************** 编写【5秒钟】按钮的单击事件代码如下: //********************************************************************** // 【5秒钟】按钮的单击事件代码 //********************************************************************** private void btn5_Click(object sender, EventArgs e) { prgTime.Value = 0; tmrPrg.Interval = 500; // 每500毫秒触发一次Timer控件的Tick事件 tmrPrg_Tick(sender, e); } //********************************************************************** //********************************************************************** 编写【10秒钟】按钮的单击事件代码如下: //********************************************************************** // 【10秒钟】按钮的单击事件代码 //********************************************************************** private void btn10_Click(object sender, EventArgs e) { prgTime.Value = 0; tmrPrg.Interval = 1000; // 每1000毫秒触发一次Timer控件的Tick事件 tmrPrg_Tick(sender, e); } //********************************************************************** //********************************************************************** 最后编写Timer控件(tmrPrg)的Tick事件代码如下: //********************************************************************** // Timer控件(tmrPrg)的Tick事件代码 //********************************************************************** private void tmrPrg_Tick(object sender, EventArgs e) { if (prgTime.Value == 100) { tmrPrg.Enabled = false; // 关闭计时器控件 } else { tmrPrg.Enabled = true; // 打开计时器控件,让其开始工作 prgTime.PerformStep(); // 调用进度条的PerformStep方法 } } //********************************************************************** //********************************************************************** (4)运行程序,分别单击2秒钟、5秒钟和10秒钟按钮,如图1-21所示。可 以估计,三次进度条方块延伸至最大值的时间分别为:2 秒钟、5 秒钟和10秒钟。 图 1-21 运行结果 1.13 GroupBox控件 框架(GroupBox)控件,主要用于组织用户界面,组成一个控件组。组成控 件组的方法是:首先添加一个框架控件,然后把其他控件放置在框架中,这些控件 就组成了一个控件组,当框架移动时,控件也跟着移动;框架隐藏时,控件也一起 隐藏。框架控件最常用的属性有Text和Visible两个。 1. Text属性 Text 属性标识框架的标题,方便用户了解框架的用途。例如: //********************************************************************** GroupBox.Text = "请选择月份:"; // GroupBox为控件名称 //********************************************************************** 2. Visible 属性 设置框架控件是否可见。例如: //********************************************************************** GroupBox.Visible = false; // 隐藏GroupBox控件 //********************************************************************** 1.14 Panel控件 面板(Panel)控件是一个用来包含其他控件的控件,这一点类似于GroupBox 控件。它把控件组合在一起,放在同一个面板上,这样将更容易管理这些控件。例 如,当禁用面板时该面板上的所有控件都将被禁用。 除了所有控件共有的一些属性外,面板控件特有的重要属性有AutoScroll属性 和BorderStyle属性。 1. AutoScroll 属性 Panel 控件派生于ScrollableControl,因此具有AutoScroll 属性,其默认值为 False。当一个面板的可用区域上有过多的控件需要显示,就应当将AutoScroll 属 性设为True。这样就可以滚动所有的控件了。 2. BorderStyle 属性 BorderStyle 属性用于控制Panel 控件是否显示边框,其默认值为None,表示 不显示边框,可以将BorderStyle 属性设为其他值,这样使用面板可视化地组合相 关的控件,从而使用户界面更加友好。如图1-22是将Panel控件的BorderStyle属 性值设为Fixed3D的情况。 图 1-22 Panel控件 1.15 RadioButton控件 大多数程序需要给用户提供选择,如简单的“是/否”选项等。Visual C# 2005 提供的用于选择的控件除了前面介绍的列表框和组合框,还有单选按钮 (RadioButton)控件和复选框(CheckBox)控件,下面首先介绍单选按钮控件。 单选按钮的左边有一个图标,一般来说,它总是成组(单选按钮组)出现的, 用户在一组单选按钮中必须选择其中的一项,并且最多只能选择一项。当某一项被 选中后,其左边的小圆圈中出现一个黑点。 1.15.1 RadioButton控件的常用属性与事件 Name等属性与前面介绍的类似,这里仅介绍单选按钮的Checked属性,它有 两个属性值:True和False,True表示该单选按钮被选中,False表示未被选中。 RadioButton控件最重要的事件是CheckedChanged事件,当用户更改选择的 单选按钮时触发改事件。 1.15.2 RadioButton控件组 因为单选按钮只能选择其一,如果在程序中需要用到多组相互独立的单选按 钮,则需要使用GroupBox控件对其进行分组,处于同一框架控件内的单选按钮为 一组。如下图1-23所示的具有两组单选按钮,每组均能选择其一。 图 1-23 单选按钮组 1.15.3 RadioButton控件使用示例 【例1-5】选择年份、月份、日期和小时、分钟、秒钟在文本框中分别显示当 前日期的年份、月份、日期和小时、分钟、秒钟。 (1)建立用户界面如图1-24所示。 图1-24 程序界面 (2)界面对象属性设置如表1-4所示。 表 1-4 窗体和各控件的属性设置 控件类型控件名称属性 设置结果 Form Form1 Text 例1-5 GroupBox GroupBox1 Text 选择年月日: GroupBox2 Text 选择时分秒: TextBox1 Name txtDate ReadOnly True Name txtTime TextBox TextBox2 ReadOnly True RadioButton1 Name rbtnYear Text 年份 RadioButton2 Name rbtnMonth Text 面月份 RadioButton3 Name rbtnDay Text 日期 RadioButton4 Name rbtnHour Text 小时 RadioButton5 Name rbtnMinute Text 分钟 Name rbtnSecond RadioButton RadioButton6 Text 秒钟 (3)编写各单选按钮的CheckedChanged事件代码。 首先编写【年份】单选按钮的CheckedChanged事件代码如下: //********************************************************************** // 【年份】单选按钮的CheckedChanged事件代码 //********************************************************************** private void rbtnYear_CheckedChanged(object sender, EventArgs e) { txtDate.Text = System.DateTime.Now.Year.ToString(); } //********************************************************************** //********************************************************************** 【月份】单选按钮的CheckedChanged事件代码如下: //********************************************************************** // 【月份】单选按钮的CheckedChanged事件代码 //********************************************************************** private void rbtnMonth_CheckedChanged(object sender, EventArgs e) { txtDate.Text = System.DateTime.Now.Month.ToString(); } //********************************************************************** //********************************************************************** 【日期】单选按钮的CheckedChanged事件代码如下: //********************************************************************** // 【日期】单选按钮的CheckedChanged事件代码 //********************************************************************** private void rbtnDay_CheckedChanged(object sender, EventArgs e) { txtDate.Text = System.DateTime.Now.Day.ToString(); } //********************************************************************** //********************************************************************** 【小时】单选按钮的CheckedChanged事件代码如下: //********************************************************************** // 【小时】单选按钮的CheckedChanged事件代码 //********************************************************************** private void rbtnHour_CheckedChanged(object sender, EventArgs e) { txtTime.Text = System.DateTime.Now.Hour.ToString(); } //********************************************************************** //********************************************************************** 【分钟】单选按钮的CheckedChanged事件代码如下: //********************************************************************** // 【分钟】单选按钮的CheckedChanged事件代码 //********************************************************************** private void rbtnMinute_CheckedChanged(object sender, EventArgs e) { txtTime.Text = System.DateTime.Now.Minute.ToString(); } //********************************************************************** //********************************************************************** 最后编写【秒钟】单选按钮的CheckedChanged事件代码如下: //********************************************************************** // 【秒钟】单选按钮的CheckedChanged事件代码 //********************************************************************** private void rbtnSecond_CheckedChanged(object sender, EventArgs e) { txtTime.Text = System.DateTime.Now.Second.ToString(); } //********************************************************************** //********************************************************************** (4)运行程序,分别选择“月份”和“秒钟”单选按钮,运行结果如图1-25 所示。 图1-25 运行结果 1.16 CheckBox控件 复选框(CheckBox)的左边有一个图标,使用复选框列出可供用户选择的 选项,用户可以根据需要选定其中的一项或者多项。当某一项被选中后,其左边的 小方框中出现一个对号。 复选框的属性与单选按钮的基本相同,同样具有Checked 属性,当该属性为 True时表示该单选按钮被选中,为False时表示未被选中。如果要使某个复选框在 程序运行中不可用,应将其Enabled 属性设为False。此时该复选框变成灰色,如 图1-26所示。 图 1-26 不可用的复选框 1.17 TabControl控件 当需要在一个窗体内放置几组相对独立而又数量较多的控件时,可以使用 TabControl控件,该控件有若干个选项卡,每个选项卡关联着一个页面,如图1-27 所示的网络连接属性对话框,就是采用了这种设计方式,可以看出它共有【常规】、 【验证】和【高级】三个选项卡,关联着三个不同的页面。 图1-27 带选项卡的窗口 TabControl控件最重要的属性就是TabPages属性,使用该属性可以设定该控 件包含的页面。设定页面的方法是:找到属性,单____________击右边的 ,将弹出如图1-28所示的【TabPage集合编辑器】窗口。 图 1-28 【TabPage集合编辑器】窗口 然后可以根据需要TabPage的数量单击【添加】(或【移除】)按钮来添加(或 移除)TabPage。并且可以在该窗口右边的TabPage属性对话框中设置TabPage的 属性,其中的Text 属性决定了选项卡中显示的文本内容,如图1-29 所示的 TabControl 控件中包含了3 个页面,分别为“读者管理”、“图书管理”和“借/还 书管理”。 图 1-29 TabControl控件 1.18 ScrollBar控件 滚动条(ScrollBar)控件的作用有两个: (1)附在窗体上协助观察数据的变化或确定位置; (2)作为数据输入的工具。 1.18.1 ScrollBar控件的类型 Visual C# 2005的滚动条控件不同于Windows内部的滚动条,也不同于Visual C# 2005中附加在文本框、列表框、组合框或MDI(多文档界面)窗体上的滚动条。 滚动条控件为不能自动支持滚动的应用程序和控件提供滚动功能。 滚动条有水平滚动条(HScrollBar)和垂直滚动条(VScrollBar)两种,如图 1-30所示。它们除了方向不同之外,没有其他的差别。 图 1-30 水平滚动条与垂直滚动条 1. 水平滚动条 水平滚动条的滑块在最左端时的Value 值代表最小值Minimum,滑块由左往 右移动,Value值随之增加,在最右端时代表Maximum。 2. 垂直滚动条 垂直滚动条的滑块在最上端时的Value 值代表最小值Minimum,滑块由上往 下移动,Value值随之增加,在最下端时代表Maximum。 1.18.2 ScrollBar控件常用的属性与事件 滚动控件常用的属性与事件如下: 1. Minimum 和Maximum 属性 Minimum和Maximum属性用于设置或返回滚动条所能代表最小值和最大值, 其取值范围是-32767~32768。Minimum 的默认值为0,Maximum 的默认值为100。 使用代码设置Minimum和Maximum属性的示例如下: //********************************************************************** HScrollBar.Minimum = 0; HScrollBar.Maximum = 256; //********************************************************************** 2. Value 属性 Value 属性用来返回或设置滚动条的当前位置,其返回值始终介于Minimum 和Maximum 之间,包括Minimum 值和Maximum 值。例如即当Minimum 和 Maximum 属性值分别为0 和100 时,Value 的变化范围为0~100。使用代码设置 Value属性的示例如下: //********************************************************************** HScrollBar.Value = 1; //********************************************************************** 3. SmallChange 属性 SmallChange属性用来返回____________或设置当用户单击滚动条两端的箭头时,滚动条控 件Value值的改变量,默认值为1。使用代码设置SmallChange属性的示例如下: //********************************************************************** HScrollBar.SmallChange = 8; //********************************************************************** 4. LargeChange 属性 LargeChange 属性用来返回或设置当用户单击滚动条与滚动箭头之间的区域 (称为滑竿)时,滚动条控件Value值的改变量,默认值为10。例如:设置水平滚 动条的LargeChange 属性值为32,则单击滚动条左边滑竿后,滚动条的Value 属 性值递减32,单击右边的滑竿时,递增32。使用代码设置LargeChange属性的示 例如下: //********************************************************************** HScrollBar.LargeChange = 32; //********************************************************************** 5. ValueChanged事件 在程序运行过程中,当滚动条的Value值发生改变时触发ValueChanged事件。 6. Scroll 事件 当用户移动滑块时触发Scroll事件。即当用户拖动滚动条滑块或者单击滚动条 两端的箭头时都触发该事件。 1.18.3 HScrollBar控件使用示例 【例1-6】使用滚动条设计一个调色板程序。程序界面如图1-31 所示,运行 程序后,当用户单击三个滚动条两端的箭头按钮、直接拖动滚动条的滑块或单击滚 动条滑竿时,均可以调整FormArgb方法中对应的颜色值,从而使“颜色效果”区 域中显示不同的颜色。程序设计步骤如下: (1)建立用户界面。 新建一个Windows应用程序,为窗体添加1个框架控件groupBox1,4个Label 控件label1~label4,3个水平滚动条控件hscrollBar1~hscrollBar3。调整控件大小 并安排适当的位置,如图1-31所示。 图 1-31 程序界面 (2)设置界面对象属性如表1-5所示。 表 1-5 界面对象属性设置 控件类型控件名称属性 设置结果 Form Form1 Text 例1-6 GroupBox GroupBox1 Text 颜色效果 Name lblShowColor Text 清空 AutoSize False Label1 BorderStyle Fixed3D Label2 Name lblRed Text 红色值: Label3 Name lblGreen Text 绿色值: Name lblBlue Label Label4 Text 蓝色值: Name hsbRed Minimum 0 Maximum 255 SmallChange 1 HScrollBar1 LargeChange 1(可精确调 色) Name hsbGreen Minimum 0 Maximum 255 SmallChange 1 HScrollBar2 LargeChange 1 Name hsbBlue Minimum 0 Maximum 255 SmallChange 1 HScrollBar HScrollBar3 LargeChange 1 (3)编写代码。 首先创建一个名为ChangeColor的方法,代码如下: //********************************************************************** // ChangeColor方法代码 //********************************************************************** void ChangeColor() { Color color = new Color(); color = System.Drawing.Color.FromArgb (hsbRed.Value, hsbGreen.Value, hsbBlue.Value); lblShowColor.BackColor = color; } //********************************************************************** //********************************************************************** 然后编写窗体Form1的Load事件代码如下: //********************************************************************** // 窗体Form1的Load事件代码 //********************************************************************** private void Form1_Load(object sender, EventArgs e) { lblRed.Text = "红色值:" + hsbRed.Value.ToString(); lblGreen.Text = "绿色值:" + hsbGreen.Value.ToString(); lblBlue.Text = "蓝色值:" + hsbBlue.Value.ToString(); ChangeColor(); } //********************************************************************** //********************************************************************** 接下来编写水平滚动条HSBRed的Scroll事件代码如下: //********************************************************************** // HSBRed的Scroll事件代码 //********************************************************************** private void hsbRed_Scroll(object sender, ScrollEventArgs e) { lblRed.Text = "红色值:" + hsbRed.Value.ToString(); ChangeColor(); } //********************************************************************** //********************************************************************** 编写水平滚动条HSBGreen的Scroll事件代码如下: //********************************************************************** // HSBGreen的Scroll事件代码 //********************************************************************** private void hsbGreen_Scroll(object sender, ScrollEventArgs e) { lblGreen.Text = "绿色值:" + hsbGreen.Value.ToString(); ChangeColor(); } //********************************************************************** //********************************************************************** 最后编写水平滚动条HSBBlue的Scroll事件代码如下: //********************************************************************** // HSBBlue的Scroll事件代码 //********************************************************************** private void hsbBlue_Scroll(object sender, ScrollEventArgs e) { lblBlue.Text = "红蓝值:" + hsbBlue.Value.ToString(); ChangeColor(); } //********************************************************************** //********************************************************************** (4)运行程序,调整红、绿、蓝颜色值,结果如图1-32所示。 图1-32 运行结果(左图为绿色、右图紫色) 综合练习 一、选择题 1. 用于确定窗体标题栏的右上角的最小化按钮是否可用的属性是( )。 A. MaximizeBox B. MinimizeBox C. StartPosition D. Icon 2. 用于确定窗体第一次出现时的位置的属性是( )。 A. MaximizeBox B. MinimizeBox C. StartPosition D. Icon 3. 显示窗体的方法是( )。 A. Show B. Close C. Hide D. Click 4. 表示DateTimePicker控件当前的日期/时间值的属性是( )。 A. ShowUpDown B. Date C. Value D. Time 5. 在 设 置图片框的Image 属性的表达式 System.Drawing.Bitmap.FromFile(PicturePath)中,PicturePath表示( )。 A. 图片名称B. 图片框格式 C. 应用程序的存放路径D. 图片的存放路径 6. 表示进度条的步长,即每次调用PerformStep 方法时进度前进的单位数的 属性是( )。 A. Step B. Minimum C. Maximum D. Value 7. 在LinkLabel 中,用于获取或设置文本中被作为超级链接的区域的属性是 ( )。 A. LinkColor B. LinkArea C. LinkVisited D. LinkClicked 8. 用于确定是否在文本框中显示某个字符的属性是( )。 A. PasswordChar B. SelectedText C. ReadOnly D. SelectionStart 二、填空题 1. 计时器控件的Interval属性表示,要使时钟控件每隔0.05 秒触发一次Tick事件,将其设置为。 2. 具有焦点的控件都具有2 个控制Tab 键序的属性,分别是 和 属性。 3. 要使某一控件不可见,应该将其属性设 为。 4. 在设计Windows应用程序时,若需要在一个窗体内放置几组相对独立而又 数量较多的对象,应当选用控件。 三、上机操作题 1. 在窗体上放置2个ComboBox控件,comboBox1中有“学号”和“姓名” 两个项目。实现: (1)单击“学号”时,在comboBox2中列出三个学号“20080001”、“200800002” 和“200800003”; (2)单击“姓名”时,在comboBox2中列出与学号对应的学生姓名“张三”、 “李四”和“王五”。 2. 修改【例1-6】,改用垂直滚动条实现调色板程序。__
本文档为【c#控件详解 教程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_963767
暂无简介~
格式:doc
大小:153KB
软件:Word
页数:88
分类:企业经营
上传时间:2019-05-27
浏览量:103