控件-Win Forms窗体控件

在项目开发中,界面设计是一个很重要的方面。好的界面应该使操作者容易掌握、赏心悦目,把操作看作是一种享受而不是负担。Visual C#.Net提供了丰富的控件,大大简化了界面设计过程。

在桌面应用程序中,C#.Net提供了两种形式的设计窗体:Windows应用程序下的Windows窗体和asp.net 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 = "https://www.microsoft.com/zh-cn";
            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#.net会自动在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#.net会自动在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)设置属性如下表

控件属性
LabelNamelabelUser
Text用户名
TextBoxNametextBoxUser
LabelNamelabelPwd
Text密码
TextBoxNametextBoxPwd
PasswordChar*
3)添加textBoxPwd_TextChanged事件代码。
选中textBoxPwd控件,添加TextChanged事件,并修改代码如下:
        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。
窗体中各控件属性如下:
控件属性
LabelNamelabel1
Text你的业余爱好是:
CheckBoxNamecheckBox1
Text体育活动
CheckedFalse
CheckBoxNamecheckBox2
Text逛商场
CheckedFalse
CheckBoxNamecheckBox3
Text聊天
CheckedFalse
ButtonNamebutton1
Text确定
2)在Form2类中,直接添加方法CheckBox_CheckedChanged。该方法的功能是当选中某个复选框时,该复选框的文字会变为绿色。
        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。

窗体中各控件属性如下:
控件属性
LableNamelabel1
Text请选择你的业余爱好(可多选)
CheckedListBoxNamecheckedListBox1
Items足球、篮球、排球、乒乓球、拳击、体操、射击、跑步、逛街、象棋、围棋、跳棋、军棋、五子棋、拱猪、双升、其它
CheckOnClickTrue
MutiColumnTrue
ButtonNamebutton1
Text确定
2)选中button1控件,添加Click事件,并修改代码如下:
        private void button1_Click(object sender, EventArgs e)
        {
            string str = "选择结果:";
            //checkedListBox1.CheckedItems.Count是用户选择的个数
            //也可以用checkedListBox1.CheckedIndices.Count
            for (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,界面与窗体中各控件属性如下:

控件属性
LabelNamelabel1
Text请选择你要参与的项目
RadioButtonNameradioButton1
Text排球赛
CheckedFalse
RadioButtonNameradioButton2
Text足球赛
CheckedFalse
RadioButtonNameradioButton3
Text篮球赛
CheckedFalse
TextBoxNametextBox1
2)在Form4类中,直接添加方法radioButton_CheckedChanged
        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,设计界面以及窗体中各控件属性如下:

控件属性
LabelNamelabel1
Text向列表中添加内容
TextBoxNametextBox1
ListBoxNamelistBox1
SelectionModeMultiSimple
ButtonNamebutton1
Text添加非重复项
ButtonNamebutton2
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,设计和窗体中各控件的属性如下:


控件属性
LabelNamelabel1
Text小组
ComboBoxNamecomboBox1
Items第一组、第二组、第三组
DropDownStyleDropDown
LabelNamelabel2
Text参加项目
ComboBoxNamecomboBox2
Items工程一、工程二、工程三
DropDownStyleDropDown
ListBoxNamelistBox1
2)添加comboBox1的SelectedIndexChanged事件
        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 (this.comboBox1.SelectedIndex > -1 && this.comboBox2.SelectedIndex > -1)
            {
                this.listBox1.Items.Add(this.comboBox1.SelectedItem.ToString() + " " + this.comboBox2.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。设计界面和窗体中各控件属性如下:

控件属性
ProgressBarNameprogressBar1
Minimum0
ProgressBarNameprogressBar2
Minimum0
LabelNamelabel1
Text外循环次数
LabelNamelabel2
Text内循环次数
ButtonNamebutton1
Text开始计算
2)添加【开始计算】按钮的Click响应事件:
        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,设计界面如下:

控件属性
ComboBoxNamecomboBox1
DropDownStyleDropDownList
Items大图标、小图标、列表、详细列表
ListViewNamelistView1
LargeImageListimageList2
SmallImageListImageList1
Columns学号、姓名、成绩
ViewDetails
LabelNamelabel1
Text学号
LabelNamelabel2
Text姓名
LabelNamelabel3
Text成绩
LabelNamelabel4
Text视图模式
ButtonNamebutton1
Text添加
ButtonNameButton2
Text删除
5)实现【添加】按钮的Click响应事件:
        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。



  • 14
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

广哥教打杂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值