控件-Win Forms窗体控件

发布时间:2018年12月16日 阅读:244 次

在项目开发中,界面设计是一个很重要的方面。好的界面应该使操作者容易掌握、赏心悦目,把操作看作是一种享受而不是负担。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)设置属性如下表


控件 属性

Label Name labelUser

Text 用户名

TextBox Name textBoxUser

Label Name labelPwd

Text 密码

TextBox Name textBoxPwd

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。

窗体中各控件属性如下:

控件 属性

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 确定

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。


窗体中各控件属性如下:

控件 属性

Lable Name label1

Text 请选择你的业余爱好(可多选)

CheckedListBox Name checkedListBox1

Items 足球、篮球、排球、乒乓球、拳击、体操、射击、跑步、逛街、象棋、围棋、跳棋、军棋、五子棋、拱猪、双升、其它

CheckOnClick True

MutiColumn True

Button Name button1

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,界面与窗体中各控件属性如下:


控件 属性

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

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,设计界面以及窗体中各控件属性如下:


控件 属性

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

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。设计界面和窗体中各控件属性如下:


控件 属性

ProgressBar Name progressBar1

Minimum 0

ProgressBar Name progressBar2

Minimum 0

Label Name label1

Text 外循环次数

Label Name label2

Text 内循环次数

Button Name button1

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,设计界面如下:


控件 属性

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 删除

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。




--------------------- 

作者:秦广说打杂 

来源:CSDN 

原文:https://blog.csdn.net/qinguang3/article/details/71155948 

版权声明:本文为博主原创文章,转载请附上博文链接!


Tag:
相关文章

发表评论: