CheckedListBox1.DataSource=table; 
CheckedListBox1.DisplayMember = "A"   
CheckedListBox1.ValueMember = "B"   这样设置后可以正常显示,但是我如何取得  CheckedListBox1 中被勾选的 ValueMember 的值呢?checkedListBox1.SelectedValue只能取到选中行的值(不是打上勾的),而且只是一行。
难道winform中就没有这功能?那 .ValueMember 还有什么意义?
                                         

解决方案 »

  1.   

    CheckedListBox box = new CheckedListBox();
                foreach (object item in box.SelectedItem)
                {
                    // Get value
                }
      

  2.   

    if (this.checkedListBox1.CheckedItems.Count > 0) 
                { 
                    foreach (string item in this.checkedListBox1.CheckedItems) 
                    { 
                        //item就是选中的值
                    } 
               }
      

  3.   

    checkedListBox1.SelectedItem 选中的项
    checkedListBox1.SelectedItems 选中的项集合
    checkedListBox1.Items 所有的项
      

  4.   


    Yes, he is right.
    I am incorrect. Sorry.
      

  5.   


                    foreach (string item in this.checkedListBox1.CheckedItems) 
                    { 
                        判断  item 
                       } 
      

  6.   

    你们说的都不对 CheckedItems 是DataRowView类型,并不能用string迭代
      

  7.   

    解决了   谢谢各位提示 ,正确方法如下
      foreach (System.Data.DataRowView item in this.checkedListBox1.CheckedItems)
      {
                           
        this.textBox1.Text += item.Row["字段名"].ToString();
      }
      

  8.   

           if (this.listBoxXmlNodes.CheckedItems.Count > 0)
                {
                    this.listBoxSingleMachine.Items.Clear();                foreach (string item in this.listBoxXmlNodes.CheckedItems)
                    {
                        //this.listBoxSingleMachine.Items.Add(item.ToString());
                    }
                    /* for (int i = 0; i < this.listBoxXmlNodes.Items.Count;i++ )
                     {
                         this.SetItemChecked(i, false);
                     }*/
                }