在非绑定的DATAGRIDVIEW加入checkbox字段?
使用一个非数据绑定的DATAGRIDVIEW,在向它里添加行时,在行最后加一个checkbox型字段,如果这个checkbox被勾选,在触发删除时,就删除这一行,如果多行的checkbox被勾选,就删除多行。这个删除应该怎么写啊?如下图
//向DGV添加行 private void pos_main_Load(object sender, EventArgs e) { DataGridViewCheckBoxColumn newcolumns = new DataGridViewCheckBoxColumn(); newcolumns.HeaderText = "选择"; this.data_list.Columns.Add("1", "货号"); this.data_list.Columns.Add("2", "品名"); this.data_list.Columns.Add("3", "产地"); this.data_list.Columns.Add("4", "规格"); this.data_list.Columns.Add("5", "单位"); this.data_list.Columns.Add("6", "零售价"); this.data_list.Columns.Add("7", "数量"); this.data_list.Columns.Add(newcolumns); this.data_list.Columns[0].Width = 90; this.data_list.Columns[1].Width = 180; this.data_list.Columns[2].Width = 90; this.data_list.Columns[3].Width = 90; this.data_list.Columns[4].Width = 58; this.data_list.Columns[5].Width = 90; this.data_list.Columns[6].Width = 62; this.data_list.Columns[7].Width = 50; ; }
For index = 0 To detailList.Count - 1 Dim cellCheckBox1 As DataGridViewCheckBoxCell = New DataGridViewCheckBoxCell cellCheckBox1.Style.Alignment = DataGridViewContentAlignment.MiddleCenter DgvSekisanItiran.Rows(index).Cells(7) = cellCheckBox1 Next
[解决办法]
判断那一列每个单元格的值,因为checkbox返回值是1或0或null
ok,如果是1,就删除为1的行就好了.
用vb.net写法
for i as integer dgv.rows.count-2 to 0 step -1 'gv.rows.count-2是除去那个动态添加行if dgv.rows(i).cells(7).formattedvalue=1 then '用formattedvalue属性直接可以可以去除null的判断dgv.rows.removeat(i)end ifnext