c# checklistbox增加和批量删除对象
增加:
if (fFrmStationChoose.StationsList != null)//fFrmStationChoose.StationsList为一个装载新数据的表 { DataTable dt = (DataTable)clbxStations.DataSource; if (dt != null) { dt.Merge(fFrmStationChoose.StationsList, true);//合并两个表 clbxStations.DataSource = dt; } else clbxStations.DataSource = fFrmStationChoose.StationsList; clbxStations.ValueMember = "seq"; clbxStations.DisplayMember = "stationidAndName"; }
批量删除:
DataTable dt = (DataTable)clbxStations.DataSource; List<int> count = new List<int>(); for (int i = 0; i < clbxStations.Items.Count; i++) { if (clbxStations.GetItemChecked(i) == true) { count.Add(i); } } clbxStations.DataSource = null; for (int i = dt.Rows.Count-1; i >-1; i--)//批量删除datatable需要从下往上 { for (int j = 0; j < count.Count; j++) { if (i == j) { dt.Rows[count[i]].Delete(); break; } } } dt.AcceptChanges();//提交对表的修改 clbxStations.DataSource = dt; clbxStations.ValueMember = "seq"; clbxStations.DisplayMember = "stationidAndName";
注意datatable的引用类型