c# ListBox控件

   ListBox控件可以一次呈现多个项,并且语序对控件中的选项进行选择操作,ListBox类公开Items属性,它是一个集合,类型为ListBox.ObjectCollection,是ListBox的一个嵌套类,该类实现了IList接口,可以调用Add方法向列表中添加新的项。ObjectCollection类提供了一个AddRange方法,允许一次性添加多个项。

  通过设置ListBox控件的SelectionMode属性可以控制ListBox的选择行为,它是一个枚举值

 

枚举值                                                              说明

None                                                                如果设置该值,则无法选择项

One                  每次只能选择一项

MultiSimple                                                      可以选择多项,第一次单击某项时将其选中,再次单击就可以取消选择

MultiExtended                                                  多选,可以使用(Ctrl)和(Shift)等控制键来辅助操作

 

1、绘制如下窗口(白色框使用ListBox控件)

2、在ListBox添加文字

4、添加RadioButton控件(Text属性一定要一样,要不然没有办法通过RadioButton按钮的Text中获取对应的值)

5、给RadioButton添加点击共享事件

6、编辑代码

 private void OnRaidoButtonCheckChange(object sender, EventArgs e)
        {
            if (this.listBox1 == null)
                return;
            RadioButton rdbutton = sender as RadioButton;
            if (rdbutton.Checked)
            {
                string txt = rdbutton.Text;//获取RadioButton text字符
                //在枚举数据类型中,调用Enum.Parse方法可以根据提供的枚举值的名字转换为枚举值
                 //并将转换的枚举值赋值给ListBox1.SelectionMode
                listBox1.SelectionMode = (SelectionMode)Enum.Parse(typeof(SelectionMode), txt);
            }
        }

 

 

LIstBox控件有个Items属性,可以通过自己编写代码向ListBox中添加列表选项。

 private void btnAddItem_Click(object sender, EventArgs e)
        {
            //判断TextBox中的文本是否为空
            if (string.IsNullOrWhiteSpace(txtInput.Text))
            {
                return;
            }

            //添加文本之前先判断是否重复
            // 摘要:
            //     找到的第一项 System.Windows.Forms.ListBox 以指定字符串开头。
            //
            // 参数:
            //   s:
            //     要搜索的文本。
            //
            // 返回结果:
            //     找到的第一项的从零开始的索引返回 ListBox.NoMatches 如果不找到任何匹配项。
            //
            // 异常:
            //   T:System.ArgumentOutOfRangeException:
            //     值 s 参数小于-1 或大于或等于项的计数。
            if (listBox1.FindString(txtInput.Text) != ListBox.NoMatches)
            {
                MessageBox.Show("此项已经存在");
                return;
            }
            //将文本框中文本加入到ListBox的列表项中
            listBox1.Items.Add(txtInput.Text);
            //清空txtInput中的文本
            txtInput.Clear();
        }
    }

 

posted @ 2017-10-18 19:22  Dipsyhu  阅读(26369)  评论(0编辑  收藏  举报