winform里,如何获得checklistbox里面选中的项的内容,msdn提供了两种方法:
msdn原文:
当显示 Windows 窗体 CheckedListBox 控件中的数据时,可以循环访问 CheckedItems 属性中存储的集合,或者使用 GetItemChecked 方法逐句通过列表来确定选中的项。GetItemChecked 方法接受一个项索引号作为参数,并返回 true 或 false。可能与您期望的相反,SelectedItems 和 SelectedIndices 属性并不确定哪些项已选中;它们确定哪些项为突出显示。
msdn提供的例子:
// Determine if there are any items checked.
if(checkedListBox1.CheckedItems.Count != 0)
{
   // If so, loop through all checked items and print results.
   string s = "";
   for(int x = 0; x <= checkedListBox1.CheckedItems.Count - 1 ; x++)
   {
      s = s + "Checked Item " + (x+1).ToString() + " = " + checkedListBox1.CheckedItems[x].ToString() + "\n";
   }
MessageBox.Show (s);
}-----------------------------------------
我按照msdn例子的样子写了一下:
string JD = "";
            if (checkedListBoxJD.CheckedItems.Count!=0)
            {
                for (int i = 0; i < checkedListBoxJD.CheckedItems.Count; i++)
                {
                    JD += checkedListBoxJD.CheckedItems[i].ToString();//这里不对,不知道怎么改
                                                                 //值为 System.Data.DataRowView
                    //用checkedListBoxJD.CheckedItems[i].text或者value--都不对,没有text和value属性
                }
            }
            label3.Text = JD;

解决方案 »

  1.   

    JD += ((System.Data.DataRowView)checkedListBoxJD.CheckedItems[i])[0].ToString();
      

  2.   

    ItemCheck事件能确认你选了那个ITem.
      

  3.   

     
     for (int i = 0; i < this.checkedListBox1.CheckedItems.Count; i++)
     {
             MessageBox.Show(this.checkedListBox1.CheckedItems[i].ToString());
     }没问题。你返回System.Data.DataRowView那是因为你直接绑定的数据源(DataTable或者DataSet等).你可以这样,如:
                DataTable dt=//你返回的数据源
                foreach (DataRow row in dt.Rows)
                {
                    this.checkedListBox1.Items.Add(row["列名"].ToString());
                }
      

  4.   

    你是要点击里面的一项取checkedListBox1那一项的值吗? 如果是: 我是了哈 解决方案是:string de = (string)checkedListBox1.SelectedItem;  //这就是取点击先择的一项,
                MessageBox.Show(de);我调试时发现 SelectedItem就选择项的值