Csharp:Windowsform using CheckedListBox Datasource

  1         /// <summary>
  2         /// 
  3         /// </summary>
  4         /// <param name="sender"></param>
  5         /// <param name="e"></param>
  6         private void ListboxCheckboxForm_Load(object sender, EventArgs e)
  7         {
  8 
  9             //设置CheckedListBox中第i项的Checked状态
 10             
 11             DataTable dt = new DataTable();
 12             dt.Columns.Add("id", typeof(Guid));
 13             dt.Columns.Add("name", typeof(string));
 14             dt.Rows.Add(Guid.NewGuid(), "geovindu");
 15             dt.Rows.Add(Guid.NewGuid(), "duf");
 16             dt.Rows.Add(Guid.NewGuid(), "涂聚文");
 17             dt.Rows.Add(Guid.NewGuid(), "tujwen");
 18             
 19 
 20             //checkedListBox1.Items.Add("");
 21             //checkedListBox1.Items.Insert(0, "");
 22             checkedListBox1.DataSource = dt;
 23             checkedListBox1.DisplayMember = "name";
 24             checkedListBox1.ValueMember = "id";
 25 
 26             checkedListBox1.SetItemCheckState(1, CheckState.Checked);
 27         }
 28         /// <summary>
 29         /// 獲取選擇的項
 30         /// </summary>
 31         /// <param name="sender"></param>
 32         /// <param name="e"></param>
 33         private void button1_Click(object sender, EventArgs e)
 34         {
 35 
 36 
 37 
 38             //1
 39             string checkedText = string.Empty;
 40             for (int i = 0; i < this.checkedListBox1.CheckedItems.Count; i++)
 41             {
 42                 this.checkedListBox1.SetSelected(i, true);
 43                 checkedText += (String.IsNullOrEmpty(checkedText) ? "" : ",") + this.checkedListBox1.GetItemText(this.checkedListBox1.Items[i]) + "[" +this.checkedListBox1.SelectedValue.ToString()+"]";
 44             }
 45             MessageBox.Show(checkedText);
 46 
 47             //2
 48             for (int i = 0; i < checkedListBox1.Items.Count; i++)
 49             {
 50 
 51                 //如果checkedListBox1的第i项被选中,
 52 
 53                 //则显示checkedListBox1对应的值
 54 
 55                 if (checkedListBox1.GetItemChecked(i))
 56                 {
 57                    // MessageBox.Show(checkedListBox1.GetItemText(checkedListBox1.Items[i]) + "[" + this.checkedListBox1.SelectedValue.ToString()+"]");
 58  
 59                 }
 60 
 61             }
 62 
 63             //3
 64             string strCollected = string.Empty;
 65 
 66             for (int i = 0; i < checkedListBox1.Items.Count; i++)
 67             {
 68 
 69                 if (checkedListBox1.GetItemChecked(i))
 70                 {
 71 
 72                     if (strCollected == string.Empty)
 73                     {
 74 
 75                         strCollected = checkedListBox1.GetItemText(checkedListBox1.Items[i]);
 76 
 77                     }
 78 
 79                     else
 80                     {
 81 
 82                         strCollected = strCollected + "/" + checkedListBox1.GetItemText(checkedListBox1.Items[i]);
 83 
 84                     }
 85 
 86                 }
 87 
 88             }
 89             //MessageBox.Show(strCollected);
 90         }
 91 
 92 
 93         /// <summary>
 94         /// 設定是否全選
 95         /// </summary>
 96         /// <param name="sender"></param>
 97         /// <param name="e"></param>
 98         private void select_all_CheckedChanged(object sender, EventArgs e)
 99         {
100             if (select_all.Checked)
101             {
102                 for (int j = 0; j < checkedListBox1.Items.Count; j++)
103                     checkedListBox1.SetItemChecked(j, true);
104 
105             }
106             else
107             {
108                 for (int j = 0; j < checkedListBox1.Items.Count; j++)
109                     checkedListBox1.SetItemChecked(j, false);
110 
111             }
112         }
113         /// <summary>
114         /// 獲取選擇的項
115         /// </summary>
116         /// <param name="sender"></param>
117         /// <param name="e"></param>
118         private void button2_Click(object sender, EventArgs e)
119         {
120             string checkedText = string.Empty;
121             for (int i = 0; i < this.checkedListBox1.Items.Count; i++)
122             {
123                 if (this.checkedListBox1.GetItemChecked(i))
124                 {
125                     this.checkedListBox1.SetSelected(i, true);
126                     checkedText += (String.IsNullOrEmpty(checkedText) ? "" : ",") +"["+this.checkedListBox1.SelectedValue.ToString()+"]" + this.checkedListBox1.GetItemText(checkedListBox1.Items[i]);
127                 }
128             }
129             MessageBox.Show(checkedText);
130         }
131         /// <summary>
132         /// 設置選擇項
133         /// </summary>
134         /// <param name="sender"></param>
135         /// <param name="e"></param>
136         private void button3_Click(object sender, EventArgs e)
137         {
138 
139 
140             checkedListBox1.DataSource = null;            
141             DataTable dt = new DataTable();
142             dt.Columns.Add("id", typeof(Guid));
143             dt.Columns.Add("name", typeof(string));
144             dt.Columns.Add("check", typeof(bool));
145 
146             dt.Rows.Add(Guid.NewGuid(), "geovindu",false);
147             dt.Rows.Add(Guid.NewGuid(), "duf",true);
148             dt.Rows.Add(Guid.NewGuid(), "涂聚文",false);
149             dt.Rows.Add(Guid.NewGuid(), "tujwen",true);
150 
151             checkedListBox1.DataSource = dt;
152             checkedListBox1.DisplayMember = "name";
153             checkedListBox1.ValueMember = "id";  
154             //
155             for (int i = 0; i < dt.Rows.Count; i++)
156             {
157 
158                 checkedListBox1.SetItemChecked(i, (bool)dt.Rows[i]["check"]);
159             }
160 
161         }
162     }

 示例:

                //checkedListBox 綁定數據
                chklistClerkRelationTypeID.DataSource = rebll.SelectDataTableAll();
                chklistClerkRelationTypeID.DisplayMember = "RelationName";
                chklistClerkRelationTypeID.ValueMember = "RelationId";

                if (choose == ChooseOperation.OperationName.Edit)
                {

                    this.txtClerkRelationDesc.Text = ClerkRelationshipStaticInfo.ClerkRelationDesc;
                    this.txtClerkRelationName.Text = ClerkRelationshipStaticInfo.ClerkRelationName;
                    this.txtClerkRelationTel.Text = ClerkRelationshipStaticInfo.ClerkRelationTel;
                    this.dateClerkBirthday.Value = ClerkRelationshipStaticInfo.ClerkBirthday;

                    //已先擇的項目 塗聚文(Geovin Du)
                    string strcheck = ClerkRelationshipStaticInfo.ClerkRelationTypeID; // 1,3
                    for (int j = 0; j < chklistClerkRelationTypeID.Items.Count; j++)
                    {
                        DataRowView dv = ((DataRowView)chklistClerkRelationTypeID.Items[j]);
                           string id=dv["RelationId"].ToString();
                           if (Geovin.Du.Common.StringConvert.getSearch(id,strcheck))
                               chklistClerkRelationTypeID.SetItemChecked(j, true);//true改为false为没有选中。
                    }   

  

哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)成功.---Geovin Du(涂聚文)
原文地址:https://www.cnblogs.com/geovindu/p/3119262.html