• c#控件攻略宝典之ListBox控件


    ListBox控件的使用:

    1)控件属性

        Items

        SelectedItems

        SelectioModes

    2)数据绑定

        DataSoure

        DisplayMember

        ValueMenber

    3)实例

    下面开始一一说明上面的ListBox控件的使用。

          首先来说控件的属性,(1)Items:使用此属性获取列表控件项的属性。此属性可用于确定列表控件中的选定项。添加items时既可以设计时静态添加,也可以在代码中动态添加。如果不想显示设计时添加的items,可以在代码中添加this.listBox1.Items.Clear();只显示在代码中添加的选项。

          (2)SelectedItems:获取包含ListBox中当前选定项的集合。

          (3)SelectioModes:获取或设置在ListBox中选择项所用的方法。一共有四个值可选;默认为 SelectionMode.One,只能选中一个;属性值为none时不能选择;当属性MultiExtended 时,按下 Shift 键的同时单击鼠标或者同时Shift 键和箭头键之一(向上键、向下键、向左键和向右键),会将选定内容从前一选定项扩展到当前项。按 Ctrl 键的同时单击鼠标将选择或撤消选择列表中的某项;当该属性设置为MultiSimple 时,鼠标单击或按空格键将选择或撤消选择列表中的某项。

          接下来说一哈数据绑定,通常数据都是可变的,所以说就需要数据绑定。数据绑定有几种,一种就是绑定从数据库中获取的DataTable或者是DataSet;另外一种就是自定义一个类,绑定自定义类中的数据。c#中的数据绑定与ASP.NET中的数据绑定还有一点区别,ASP.NET中绑定数据后还要调用一个DataBind方法,而在c#中就不需要。而DisplayMember获取或设置要显示的属性。

          最后我们来做一个实例如图所示:下面我们只是说一哈几个重要的方法的实现,具体代码就不在这写了。将左边框中的选项放到右边框中去。代码:

     for (int i = this.listBox1.SelectedItems.Count - 1; i >= 0;i -- )
    {
          Menu menu = (menu)this.listBox1.SelectedItems[i];
          this.listBox2.Items.Add(menu);

          this.listBox1.Items.Remove(i);

    }   

    上面虽然实现了功能但是有一个问题,就是左边的项到了右边后变成了倒序。这是我们需要将添加和移出分开写,代码:

    for (int i = 0; i < this.listBox1.SelectedItems.Count;i++ )
    {
          Menu menu = (menu)this.listBox1.SelectedItems[i];
          this.listBox2.Items.Add(menu);

    }
    for (int i = this.listBox1.SelectedItems.Count - 1; i >= 0; i--)
    {
          this.listBox1.Items.Remove(i);
     }

    到现在为止还一个问题就是当选择框中的前面几个项的时候右移没有问题,但选择后面几个项时移到右边框中的是后面几个项,而左边框中移出的是前面几个项,造成这个问题的原因是我们将

    SelectedItems和Items混为一谈了。这是很多初学者容易犯的错误。代码:

    for (int i = 0; i < this.listBox1.SelectedItems.Count;i++ )
    {
          Menu menu = (menu)this.listBox1.SelectedItems[i];
          this.listBox2.Items.Add(menu);

    }
    for (int i = this.listBox1.SelectedItems.Count - 1; i >= 0; i--)
    {

          Menu menu = (menu)this.listBox1.SelectedItems[i];
          this.listBox1.Items.Remove(menu);
     }

    这样的话就对了。

  • 相关阅读:
    04-老马jQuery教程-DOM节点操作及位置和大小
    03-老马jQuery教程-DOM操作
    02-老马jQuery教程-jQuery事件处理
    01-老马jQuery教程-jQuery入口函数及选择器
    08Vue.js快速入门-Vue综合实战项目
    09Vue.js快速入门-Vue入门之Vuex实战
    07Vue.js快速入门-Vue路由详解
    06Vue.js快速入门-Vue组件化开发
    整套高质量前端基础到高级视频教程免费发布
    05-Vue入门系列之Vue实例详解与生命周期
  • 原文地址:https://www.cnblogs.com/wwwzzg168/p/3570121.html
Copyright © 2020-2023  润新知