控件
在项目开发中,界面设计是一个很重要的方面。好的界面应该使操作者容易掌握、赏心悦目,把操作看作是一种享受而不是负担。Visual C#.Net提供了丰富的控件,大大简化了界面设计过程。
在桌面应用程序中,C#.Net提供了两种形式的设计窗体:Windows应用程序下的Windows窗体和asp web应用程序下的web窗体。为了使用方便,这里分别将其简称为:Win Forms和Web Forms。
在windows应用程序中,只能使用Windows窗体控件。与窗体有关的设计主要包括创建控件、设置控件外观、编写事件方法和访问控件属性。对属性的修改有两种方法,即在设计窗体下直接修改和在代码中修改。
1、控件中一些常用的属性和事件
1.1常用基本属性
1)Name:表示控件的名称。 2)Enabled:表示控件是否可以对用户交互做出响应。 3)Font:表示控件中显示文字的字体格式,包括字体名称、字号以及是否以斜体、加粗和下划线显式。 4)BackColor:表示控件的背景色。 5)ForeColor:表示控件的前景色。 6)Image:表示控件上显示的图片。 7)Location:这是一个复合属性,表示控件的左上角相对于其容器的左上角的坐标。 8)Size:这是一个复合属性,表示控件的高度和宽度。 9)Visible:表示是否显示控件。1.2常用事件
1)MouseEnter事件:鼠标进入控件区域内时触发。 2)MouseDown事件:在控件区域内按下鼠标键时触发。 3)MouseLeave事件:鼠标离开控件区域时触发。 除了上面提到的一些常用基本属性和事件以外,每个控件还有一些适合自己特点的属性和事件,现分别介绍如下。2 Label控件和LinkLabel控件
Label控件通常用于提供控件或窗体的描述性文字,以便为用户提供帮助信息。2.1Label控件常用的基础属性
Text:表示显式的文本内容。2.2操作示例
下面这个示例主要反映如何在窗体中放置控件,以及设置控件属性。 【例】标签示例 1)创建一个Windows应用程序项目,在“属性”窗口中将窗体form1的“Text”属性改为“基础控件”,设置窗体“Size”属性值为“352,240”。2)从工具箱中拖出Label控件到窗体中。
3)选中窗体中的Label控件,查看“属性”窗口,看到其“Name”属性为“Label1”。
4)设置“Text”属性值为“基础控件展示”;设置“Font”属性值为“宋体,小二号字,斜体”;设置“Location”属性值为“88,24”,设置“ForeColor”属性值为“Blue”。
5)按<F5>键编译并执行。
LinkLabel控件与Label控件非常相似,不同的是它可以显示超级链接。当用户点击LinkLabel控件时,会触发LinkClicked事件,可以在LinkClicked事件中编写代码链接到指定网页。假设窗体上有一个LinkLabel控件,其“Text”属性为“请单击访问微软中国主页”;“LinkArea”属性为“5,4”,意思是将第5个字符后的4个字符即“微软中国”作为链接区域。编写LinkLabel1_LinkClicked事件代码为:
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e){this.linkLabel1.Links[0].LinkData = "";System.Diagnostics.Process.Start(e.Link.LinkData.ToString());}
执行该窗体,当用户单击“微软中国”时,就会显示相应的网页。
3 Button控件
一般使用Button控件完成某个处理过程。3.1 按钮控件中常用的基本属性
Text属性:表示按钮控件上显示的文本内容。3.2 按钮控件中常用的基本事件
Click事件:表示用鼠标单击控件时触发的操作。3.3 操作示例
下面这个示例主要反映如何实现一些常用事件。 【例】按钮示例 1)从工具箱中拖动Button控件到窗体中。 2)查看”属性“窗口,看到其”Name“属性为”button1“. 3)设置”Text“属性值为”按钮测试“;设置”Location“属性值为”120,160“;设置”Size“属性值为”88,32“。 4)实现Click事件。 该事件的功能是当鼠标单击按钮时,会弹出一个消息框,同时修改标签属性。 在属性窗口中,单击”事件“符号,在事件列表中找到”Click“事件,双击”Click“单元格,打开”代码编辑器“窗口,Visual C#会自动在From1.cs文件中加入以下代码: private void button1_Click(object sender, EventArgs e){}
其中,sender代表发出事件的对象,此处指button1;e代表封装的事件信息。在其中添加代码,其结果如下:
private void button1_Click(object sender, EventArgs e){//修改标签文本属性label1.Text = "请选择你的业余爱好";//弹出一个消息对话框MessageBox.Show(this, "标签文本内容已修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);}
5)实现MouseEnter事件。
该事件的功能是当鼠标进入按钮区域时,按钮颜色变为白色。
在时间列表中双击”MouseEnter“单元格,Visual C#会自动在Form1.cs文件中加入以下代码:
private void button1_MouseEnter(object sender, EventArgs e){}
在其中添加代码,如下:
private void button1_MouseEnter(object sender, EventArgs e){button1.BackColor = System.Drawing.Color.White;}
6)实现MouseLeave事件。
该事件的功能是当鼠标离开按钮区域时,按钮恢复原来的颜色。
添加MouseLeave事件,修改代码如下:
private void button1_MouseLeave(object sender, EventArgs e){button1.BackColor = System.Drawing.SystemColors.Control;}
7)按<F5>键编译并执行。 4 TextBox控件
TextBox控件允许用户在应用程序中输入或编辑文本,包括多行编辑和密码字符屏蔽等。4.1 文本框控件中常用的基本属性
1)Text属性:表示文本框中的当前文本。 2)MaxLenght属性:表示用户可以在文本框控件中最多键入的字符数。 3)Multiline属性:表示是否可以包含多行内容。 4)PasswordChar属性:用于屏蔽在单行文本框控件中输入的密码字符。也就是说,如果指定了PasswordChar,则输入的任何字符都显示为PasswordChar中指定的字符。注意:如果将Multiline属性设置为true,则PasswordChar不起作用。4.2 文本框控件中常用的基本事件
TextChanged事件:表示文本框当前内容(Text属性值)更改时触发的操作。4.3 操作示例
该示例的功能是当用户输入密码时,标签label1的文本反映出该用户输入的密码。 【例】文本框示例 1)从工具箱中以此拖入Label和TextBox控件到窗体中。2)设置属性如下表
控件 | 属性 | 值 |
Label | Name | labelUser |
Text | 用户名 | |
TextBox | Name | textBoxUser |
Label | Name | labelPwd |
Text | 密码 | |
TextBox | Name | textBoxPwd |
PasswordChar | * |
private void textBoxPwd_TextChanged(object sender, EventArgs e){label1.Text = textBoxUser.Text + "输入的密码为" + textBoxPwd.Text;}
4)按<F5>键编译并执行。 5 CheckBox控件
CheckBox控件可为用户提供一项选择,如“真/假”或“是/否”。该复选框控件可以显示一个图像或文本,或两者都显示。多个CheckBox控件构成一组选项时,可进行多重选择,相互之间不影响。5.1 复选框控件中常用的基础属性
1)Text属性:表示与复选框控件关联的文本。 2)Checked属性:表示复选框是否处于选中状态。5.2 复选框控件中常用的基本事件
CheckedChanged事件:表示当Checked属性值更改时触发的操作。 5.3 操作示例 该示例的功能是当选中某个复选框时,该复选框的文字会变为绿色,单击按钮时会弹出消息反映用户的选择。3个CheckBox控件的CheckedChanged事件通过调用一个公用的方法checkBox_CheckedChanged来实现。 【例】复选框示例 1)在工程中添加一个新窗体form2。 窗体中各控件属性如下:控件 | 属性 | 值 |
Label | Name | label1 |
Text | 你的业余爱好是: | |
CheckBox | Name | checkBox1 |
Text | 体育活动 | |
Checked | False | |
CheckBox | Name | checkBox2 |
Text | 逛商场 | |
Checked | False | |
CheckBox | Name | checkBox3 |
Text | 聊天 | |
Checked | False | |
Button | Name | button1 |
Text | 确定 |
public void checkBox_CheckedChanged(object sender, System.EventArgs e){//引用CheckBox对象CheckBox checkbox = (CheckBox)sender;if (checkbox.Checked){checkbox.ForeColor = Color.Green;}else{checkbox.ForeColor = Color.Black;}}
3)将3个CHeckBox控件的CheckedChanged触发事件均选择为checkBox_CheckedChanged。
4)选中button1控件,添加Click事件,并修改代码如下:
private void button1_Click(object sender, EventArgs e){string str = "选择结果:";str += (this.checkBox1.Checked) ? (this.checkBox1.Text + "、") : "";str += (this.checkBox2.Checked) ? (this.checkBox2.Text + "、") : "";str += (this.checkBox3.Checked) ? (this.checkBox3.Text + "、") : "";//去除一个多余的、if (str[str.Length - 1] == '、'){str = str.Substring(0, str.Length - 1);}MessageBox.Show(str);}
该事件的功能为单击按钮时弹出消息对话框显示用户选择的结果。
5)直接执行窗体Form2的方法。
当执行项目时,C#会自动调用窗体Form1,此处示例不需要执行Form1,而希望执行窗体Form2,为了能够直接调用窗体Form2,必须在Form1类中找到Main方法,对其进行修改。
static void Main(){Application.Run(new Form2());}
修改后,运行项目时,将直接调用窗体Form2.
6)按<F5>键编译并执行。 6 CheckedListBox控件
CheckedListBox控件提供一个选项列表,当选择项比较多时,或者在运行时需要动态地决定由哪些选型时,使用此控件比较方便。6.1 复选框列表控件中常用的基本属性
1)Items属性:表示控件对象中所有选项的集合。 2)MutiColumn属性:表示控件对象是否支持多列。 3)ColumnWidth属性:表示控件对象支持多列时,列的宽度。 4)CheckOnClick属性:表示当选定某项时是否应同时改变复选框状态。 5)Sorted属性:表示控件对象中各项是否按字母排序。 6)CheckedItems属性:表示控件对象中选中索引的集合。6.2 操作示例
该示例的主要功能是能够对选项进行多次选择,单击【确定】按钮时,弹出用户选择的信息。 【例】多项选择示例。 1)在工程中添加一个新窗体Form3。窗体中各控件属性如下:
控件 | 属性 | 值 |
Lable | Name | label1 |
Text | 请选择你的业余爱好(可多选) | |
CheckedListBox | Name | checkedListBox1 |
Items | 足球、篮球、排球、乒乓球、拳击、体操、射击、跑步、逛街、象棋、围棋、跳棋、军棋、五子棋、拱猪、双升、其它 | |
CheckOnClick | True | |
MutiColumn | True | |
Button | Name | button1 |
Text | 确定 |
private void button1_Click(object sender, EventArgs e){string str = "选择结果:";//checkedListBox1.CheckedItems.Count是用户选择的个数//也可以用checkedListBox1.CheckedIndices.Countfor (int i = 0; i < checkedListBox1.CheckedItems.Count; i++){//checkedListBox1.CheckedItems[i]是用户选中项集合中的第i项str += checkedListBox1.CheckedItems[i] + "、";}if (str[str.Length - 1] == '、'){str = str.Substring(0, str.Length - 1);}MessageBox.Show(str);}
3)直接执行窗体Form3。 7 RadioButton控件
RadioButton控件的方法与CheckButton控件基本类似,但在一组中选择一个单选按钮时,则自动清除其他按钮,即仅能选择其中的一个。单选按钮是以他们所在的容器划分组的,直接在form上放置的单选按钮将自动成为一组,这时form就是容器。如果在一个Form上创建多个单选按钮组,则需要使用GroupBox或者Panel控件作为容器。7.1 单选按钮控件中常用的基本属性
1)Text属性:表示与控件对象相关联的文本。 2)Checked属性:表示该控件对象是否被选中。7.2 单选按钮中常用的基本事件
CheckedChanged事件:表示当Checked属性值更改时触发的操作。7.3 操作示例
该实例的主要功能是在文本框中显示用户的选择。3个RadioButton控件的CheckedChanged事件调用了公用的方法RadioButton_CheckedChanged 【例】用户选择示例 1)在工程中添加一个新窗体Form4,界面与窗体中各控件属性如下:控件 | 属性 | 值 |
Label | Name | label1 |
Text | 请选择你要参与的项目 | |
RadioButton | Name | radioButton1 |
Text | 排球赛 | |
Checked | False | |
RadioButton | Name | radioButton2 |
Text | 足球赛 | |
Checked | False | |
RadioButton | Name | radioButton3 |
Text | 篮球赛 | |
Checked | False | |
TextBox | Name | textBox1 |
private void radioButton_CheckedChanged(object sender, System.EventArgs e){//将object对象转型为RadioButton对象RadioButton check = (RadioButton)sender;if (check.Checked){textBox1.Text = check.Text;}}
3)将3个RadioButton控件的CheckedChanged触发事件均选择为radioButton_CheckedChanged。
4)直接执行窗体Form4. 8 ListBox控件
ListBox控件用来显示一组条目,以便让操作者从中选择一条或者多条,然后进行相应的处理,用法以及属性有些类似于CheckedListBox。8.1 列表框控件中常用的基本属性
除了介绍过的Items属性、MultiColumn属性以外,列表框控件还有其他一些常用属性。 1)SelectionMode属性:表示选择项时可以使用的方法,它有4种选择: *None:不能选择。 *One:同一时刻只能选择一个条目。 *MultsSimple:同一时刻可以选择一个或者多个条目。 *MultExtended:同一时刻可以选择一个或者多个条目,并且可以使用组合键(如<Shift>和<Ctrl>)帮助选择。 2)SelectedIndex属性:表示控件对象中当前选定条目的从零开始的索引。 3)SelectedItems属性:获取一个集合,该集合包含控件对象中所有当前选定条目的从零开始的所有项。 4)Selectedindices属性:获取一个集合,该集合包含控件对象所有当前选定条目的从零开始的所有索引。8.2 操作示例
该示例的主要功能是在Form5_Load中自动初始化列表框控件,向列表框中添加非重复的条目,以及删除用户在列表框中的选择(可以多选)。 【例】列表框示例 1)在工程中添加一个新窗体Form5,设计界面以及窗体中各控件属性如下:控件 | 属性 | 值 |
Label | Name | label1 |
Text | 向列表中添加内容 | |
TextBox | Name | textBox1 |
ListBox | Name | listBox1 |
SelectionMode | MultiSimple | |
Button | Name | button1 |
Text | 添加非重复项 | |
Button | Name | button2 |
Text | 多项删除 |
2)修改Form5_Load事件,代码如下:
private void Form5_Load(object sender, EventArgs e){for (int i = 0; i<6; i++){//listbox1.Items.Add方法用户向列表框中添加条目listBox1.Items.Add("第" + (i + 1).ToString() + "项");}}
3)修改button1_Click事件,代码如下:
private void button1_Click(object sender, EventArgs e){//插入非重复条目bool ifExist = false;if (textBox1.Text != ""){//for语句用来查找是否有重复条目,listBox1.Items.Count代表列表框中条目的个数for (int i = 0; i < listBox1.Items.Count; i++){if (listBox1.Items[i].ToString() == textBox1.Text){ifExist = true;//找到时中断退出break;}}if (!ifExist){listBox1.Items.Add(textBox1.Text);}}}
4)修改button2_Click事件,代码如下: private void button2_Click(object sender, EventArgs e){//多项删除//listBox1.SelectedIndices.Count用户选中条目的个数for (int i = listBox1.SelectedItems.Count - 1; i >= 0; i--){listBox1.Items.Remove(listBox1.SelectedItems[i]);}}
5)直接执行窗体Form5。 9 ComboBox控件 ComboxBox控件由两部分组成,即一个文本框和一个列表框。文本框可以用来编辑或者显示当前选中的条目。单击文本框旁边带有向下箭头的按钮,则会弹出列表框,使用键盘或者鼠标可以在列表框中快速选择条目。 9.1 组合框控件中常用的基本属性 除了前面介绍过的属性外,组合框控件还有其他的常用属性。 DropDownStyle属性:表示组合框的样式,它有3种选择: *Simple:同时显示文本框和列表框,文本框可以被编辑。 *DropDown:只显示文本框,需要通过键盘或者鼠标打开列表框,文本框可以被编辑。 *DropDownList:只显示文本框,需要通过键盘或者鼠标打开列表框,文本框不可以被编辑。 9.2 组合框控件中常用事件 SelectedIndexChanged事件:表示SelectedIndex属性更改后触发的动作。 9.3 操作示例 该示例的主要功能是在组合框中添加小组参加的项目,只有用户选择了小组和项目才能进行添加。 【例】组合框用法示例 1)在工程中添加一个新窗体Form6,设计和窗体中各控件的属性如下:
控件 | 属性 | 值 |
Label | Name | label1 |
Text | 小组 | |
ComboBox | Name | comboBox1 |
Items | 第一组、第二组、第三组 | |
DropDownStyle | DropDown | |
Label | Name | label2 |
Text | 参加项目 | |
ComboBox | Name | comboBox2 |
Items | 工程一、工程二、工程三 | |
DropDownStyle | DropDown | |
ListBox | Name | listBox1 |
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e){//在两个组合框都进行了选择后,才进行添加if (comboBox1.SelectedIndex > -1 && comboBox2.SelectedIndex > -1){listBox1.Items.Add(comboBox1.SelectedItem.ToString() + " " + comboBox2.SelectedItem.ToString());}}
3)添加comboBox2的SelectedIndexChanged事件
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e){if (thisboBox1.SelectedIndex > -1 && thisboBox2.SelectedIndex > -1){this.listBox1.Items.Add(thisboBox1.SelectedItem.ToString() + " " + thisboBox2.SelectedItem.ToString());}}
4)直接执行窗体Form6。 10 ToolTip控件
ToolTip控件的用途是当鼠标位于某个控件上并停留一段时间后,显示该控件功能的提示信息。10.1 控件中常用的基本属性
1)Active属性:表示该控件当前是否处于激活状态。 2)AutomaticDelay属性:设置经过多长时间显示提示信息,默认值为500ms。 3)AutoPopDelay属性:设置鼠标指针停留多长时间后提示信息消失。10.2 操作示例
在上例的Form6中拖放一个ToolTip控件,然后再Form6的构造函数中加入下列代码: toolTip1.SetToolTip(comboBox1, "选择参加的小组。");toolTip1.SetToolTip(comboBox2, "选择左边小组参加的项目。");toolTip1.SetToolTip(listBox1, "各小组参加的项目列表");
运行时,分别将鼠标在上述控件中停留一段时间,观察显示的提示信息。实际上,如果控件有ToolTip属性,直接设置ToolTip属性也可以完成这种功能。 11 PictureBox控件
PictureBox控件是用于显示图像的Windows图片框控件。其常用的基本属性如下: 1)Image:在PictureBox中显示的图像。 2)SizeMode:图片在控件中的显示方式,有4中选择: *AutoSize:调整控件PictureBox大小,使其等于所包含的图像大小。 *CenterImage:如果控件PictureBox比图像大,则图像将居中显示。如果图像比控件大,则图片将位于控件中心,而外边缘将被剪裁掉。 *Normal:图像被置于控件的左上角。如果图像比控件大,则超出部分被剪裁掉。 *StretchImage:控件中的图像被拉伸或收缩,以配合控件的大小。12 MainMenu控件
MainMenu控件实际上是一个组件,该组件在运行时显示一个菜单。利用其菜单设计器可以迅速建立主菜单的结构。在菜单中,可以用符号“&”代表快捷键,如&F代表<Alt+F>;用符号“-”代表分隔符。 【例】添加菜单示例 1)在工程中添加一个新窗体Form7。 2)将MainMenu组件从工具箱拖放到窗体上。 3)在菜单设计器中,创建一个顶级菜项将其“Text”属性设置为“文件(&F)”。然后依次创建4个子菜单,将其“Text”属性分别设置为“新建(&New)”、“打开(&Open)”、“-”和“退出(&Exit)”。 4)再创建一个顶级菜单项,并将其“Text”属性设置为“背景色”;两个子菜单项,其“Text”属性设置为“红色”和“白色”。 5)再创建一个顶级菜单项,并将其“Text”属性设置为“测试执行文件所在目录”。 6)双击对应菜单项,添加事件代码: private void menuItem2_Click(object sender, EventArgs e){MessageBox.Show("你选择的是“新建”");}private void menuItem3_Click(object sender, EventArgs e){MessageBox.Show("你选择的是“打开”");}private void menuItem5_Click(object sender, EventArgs e){Application.Exit();}private void menuItem7_Click(object sender, EventArgs e){this.BackColor = Color.Red;}private void menuItem8_Click(object sender, EventArgs e){this.BackColor = Color.White;}private void menuItem9_Click(object sender, EventArgs e){MessageBox.Show("exe文件所在目录为:\n\n" + Application.StartupPath + "\n");}
7)直接执行窗体Form7。 13 ProgressBar控件
ProgressBar控件用来动态显示一个过程的进行程度,当某个操作需要较长的时间(几秒钟或者更长时间,例如复制操作)时,就需要使用ProgressBar向用户显示操作的进度情况。13.1 ProgressBar控件中常用的基本属性
1)Minimum:表示进度条的最小值,默认值为0。 2)Maximum:表示进度条的最大值,默认值为100。 3)Value:表示进度条的当前值,默认值为0,它应该在minimum和Maximum之间取值。13.2 操作示例
该示例的主要功能是如何操作进度条,progressBar2反映内循环,当变量值是10的倍数时加1;progressBar1反映的是外循环,其值每次加1。 【例】进度条示例 1)在工程中添加一个新窗体Form8。设计界面和窗体中各控件属性如下:控件 | 属性 | 值 |
ProgressBar | Name | progressBar1 |
Minimum | 0 | |
ProgressBar | Name | progressBar2 |
Minimum | 0 | |
Label | Name | label1 |
Text | 外循环次数 | |
Label | Name | label2 |
Text | 内循环次数 | |
Button | Name | button1 |
Text | 开始计算 |
private void button1_Click(object sender, EventArgs e){button1.Enabled = false;//Int32.Parse将字符型转换为整型int outLoop = Int32.Parse(textBox1.Text);int InnerLoop = Int32.Parse(textBox2.Text);progressBar1.Maximum = outLoop;progressBar2.Maximum = InnerLoop;for (int i = 1; i <= outLoop; i++){for (int j = 1; j <= InnerLoop; j++){//j是10的整数倍时,progressBar2的值递增if (j % 10 == 0){progressBar2.Value = j;}}progressBar1.Value = i;}button1.Enabled = true;}
3)直接执行窗体Form8。
14 TabControl控件
TabControl控件可以创建带有多个标签页的窗口,每个标签页都是一个容纳其他控件(例如TextBox或Button)的容器。当窗口功能复杂、控件很多时,就可以使用TabControl把它们按功能进行分类。14.1 TabControl控件中常用的基本属性
1)Multiline属性:表示是否可以显示一行以上的选项卡。即当其包含很多标签页时,标签页是否可以换行,呈多行显示。 2)ImageList属性:TabControl控件对象的标签上可以使用图标,该属性用来存放所需要的图标,然后该ImageList属性再调用此ImageList控件对象。 3)TabPages属性:包含了TabControl控件对象中的所用标签页面,每个标签页面都是一个容器,用来存放其他控件对象。14.2 操作示例
该示例主要演示如何添加一个选项卡。 【例】选项卡示例 1)在工程中添加一个新窗体Form9。 2)向窗体上拖放一个Tabcontrol控件,调整其大小。 3)向窗体上拖放一个ImageList控件,添加2个图标。 4)设置TabControl的ImageList属性为ImageList1。 5)设置TabControl的TabPages属性,添加2个标签页,再分别在2个标签页上放置相应的空间,页面如下:6)直接执行窗体Form9 15 ListView控件 ListView控件用列表的形式显示一组数据,每条数据都是一个ListItem类型的对象,通常使用ListView来显示对数据库的查询结果。Windows系统中的文件浏览器就是一个ListView控件。 15.1 ListView控件中常用的剧本属性 1)View属性:表示数据的显示模式,有4中选择: *Large Icons(大图标):每条数据都用一个带有文本的大图标表示。 *Small Icons(小图标):每条数据都用一个带有文本的小图标表示。 *List(列表):提供ListItems对象视图。 *Details(详细列表):每条数据由多个字段组成,每个字段各占一列。 2)MultiSelect属性:表示是否允许多行选择。 15.2 操作示例 该示例主要说明如何建立列表视图。 【例】列表视图示例 1)在工程中添加一个新窗体From10,设计界面如下:
控件 | 属性 | 值 |
ComboBox | Name | comboBox1 |
DropDownStyle | DropDownList | |
Items | 大图标、小图标、列表、详细列表 | |
ListView | Name | listView1 |
LargeImageList | imageList2 | |
SmallImageList | ImageList1 | |
Columns | 学号、姓名、成绩 | |
View | Details | |
Label | Name | label1 |
Text | 学号 | |
Label | Name | label2 |
Text | 姓名 | |
Label | Name | label3 |
Text | 成绩 | |
Label | Name | label4 |
Text | 视图模式 | |
Button | Name | button1 |
Text | 添加 | |
Button | Name | Button2 |
Text | 删除 |
private void button1_Click(object sender, EventArgs e){int itemNumber = listView1.Items.Count;string[] subItem = { textBox1.Text, textBox2.Text, textBox3.Text };//listView1.Items.Insert方法用来在列表视图中添加ListView对象listView1.Items.Insert(itemNumber, new ListViewItem(subItem));listView1.Items[itemNumber].ImageIndex = 0;}
6)实现【删除】按钮的Click响应时间:
private void button2_Click(object sender, EventArgs e){for (int i = listView1.SelectedItems.Count - 1; i >= 0; i--){ListViewItem item = listView1.SelectedItems[i];//ListView1.Items.Remove用来去除列表视图中的ListViewItem对象listView1.Items.Remove(item);}}
7)添加comboBox1的SelectIndexChanged事件,该事件用于选择显示方式:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e){string str = comboBox1.SelectedItem.ToString();switch (str){case "大图标":listView1.View = View.LargeIcon;break;case "小图标":listView1.View = View.SmallIcon;break;case "列表":listView1.View = View.List;break;default:listView1.View = View.Details;break;}}
8)直接执行窗体Form10。