Visual C#2010学习笔记四之列表选择控件的使用

来源:互联网 发布:知乎日报 for mac 编辑:程序博客网 时间:2024/06/06 01:48

Windows窗体中列表选择控件主要包括:ListBox控件,CheckListBox控件,ComboBox控件。

ListBox控件:用于显示一项列表,可以选一项或多项。

ListBox控件:显示项的列表,与ListBox类似,同时还可以在列表中项的旁边选中标记。

ComboBox控件:用于在下拉组合框中显示数据。

另外,再补充两个控件:ListView控件、TreeView控件。

ListView控件:用于显示带图标的项的列表。

TreeView控件:可以显示节点层次结构,就像在Windows操作系统的Windows资源管理器功能的左窗格中显示文件和文件夹一样。

例题:创建一个窗体应用程序,分别使用ListBox控件,CheckListBox控件和ComboBox控件,ComboBox控件出现“姓名、编号、评分”三个下拉框选项;各个下拉框的内容在CheckListBox控件中显示并且可以选择;选择后的内容通过button键提交到ListBox控件上显示。如下图:


实现步骤:

第一步:创建Windows窗体应用程序项目,分别将1个ListBox控件,1个CheckListBox控件,1个ComboBox控件,1个button控件,3个Lable控件拖到Form1中,并实现如上图布局。

第二步:将ListBox控件、CheckListBox控件、ComboBox控件、Lable控件和button控件的Text属性设置成如图所示。修改ComboBox控件中Item的属性框右侧省略号按钮,在“字符串集合编辑器”中添加:姓名、编号、评价,这3项。然后将ListBox控件的SelectionMode属性设置为“MultiExtended”。

第三步:在源文件Form1.cs中编辑如下程序:

namespace 列表选择控件
{
    public partial class Form1 : Form
    {
        private string[] names; //定义三个私有数组,分别为姓名、编号、评价
        private string[] nums;
        private string[] mark;
        public  Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            names = new string[] { "老周", "老张", "老刘", "老范", "老王" };  //姓名
            nums = new string[] { "10001", "10002", "10003", "10004", "10005" };  //编号
            mark = new string[] { "非常优秀", "优秀", "良好", "合格", "不合格" }; //评价
            this.checkedListBox1.Items.AddRange(names); //将数组names数据添加到checkedListBox1“选择栏”中
            this.comboBox1.SelectedIndex = 0;   //定义打开软件时初显第1个下拉框的信息,即:names姓名信息
        }
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            ComboBox cd = (ComboBox)sender; //定义选择comboBox1“信息栏”中的选项,【0,1,2】等于comboBox1-SelectedIndex中[姓名,编号,评价],并将选择的值赋予cd
            switch (cd.SelectedIndex)   //选择:姓名、编号、评价,相应栏,在checkedListBox1“选择栏”出现相应的信息。
            { 
                case 0:
                    this.checkedListBox1.Items.Clear();
                    this.checkedListBox1.Items.AddRange(names);
                    break;
                case 1:
                    this.checkedListBox1.Items.Clear();
                    this.checkedListBox1.Items.AddRange(nums);
                    break;
                case 2:
                    this.checkedListBox1.Items.Clear();
                    this.checkedListBox1.Items.AddRange(mark);
                    break;
            }
            this.listBox1.Items.Clear(); //清空listBox1“显示栏”中显示的内容。
        }
        private void button1_Click(object sender, EventArgs e)
        {
            int count = this.checkedListBox1.CheckedItems.Count;
            if (this.checkedListBox1.Items.Count == 0)     //当只选择一个下拉框里的信息时,正常返回。
            {
                return;    //一个方法中也可以出现多个return,但只有一个会执行。当return语句后面什么都不加时,返回的类型为void。
            }
            if (this.checkedListBox1.Items.Count == -1)     //当一个下拉框里的内容都没选,提示用户选择。
            {
                MessageBox.Show("请在\"选择栏\"中选择要添加的项。");
                return;
            }
            for (int i = 0; i < count; i++)  //在listBox1显示栏显示checkedListBox1选择栏中被选中的内容。
            {
                this.listBox1.Items.Add(this.checkedListBox1.CheckedItems[i]);
            }
            MessageBox.Show("选定的项已被移到\"显示栏\"中");
        }     
    }
}

第四步:点击保存,按F6保存,F5编译。

第五步:点击提交信息,如下图:


在调试运行中,在勾选“选择栏”信息时出现以下报错信息:


经过反复检查,发现是电脑系统的问题,换了台电脑就可以成功实现。


0 0