DataGridView中添加checkbox后
点击checkbox那个小方框,无论怎么点就是无法勾上,是什么问题啊?
我是这样添加进去的
this.ProGridView.DataSource = this.ds.Tables[0];
DataGridViewCheckBoxColumn XuanZe = new DataGridViewCheckBoxColumn();
ProGridView.Columns.Insert(0, XuanZe);
还有 在winfrm下
我的datagridview里面数据室这样
选择 ID 列名2 列名3
checkbox 1 数据a1 数据a2
checkbox 2 数据b1 数据b2
checkbox 3 数据c1 数据c2
当我选择 第一跟第三行后
就把第一跟第三行对应的id传递到另外一个winfrm 该怎么做?
点击checkbox那个小方框,无论怎么点就是无法勾上,是什么问题啊?
我是这样添加进去的
this.ProGridView.DataSource = this.ds.Tables[0];
DataGridViewCheckBoxColumn XuanZe = new DataGridViewCheckBoxColumn();
ProGridView.Columns.Insert(0, XuanZe);
还有 在winfrm下
我的datagridview里面数据室这样
选择 ID 列名2 列名3
checkbox 1 数据a1 数据a2
checkbox 2 数据b1 数据b2
checkbox 3 数据c1 数据c2
当我选择 第一跟第三行后
就把第一跟第三行对应的id传递到另外一个winfrm 该怎么做?
{
DataColumn dc = new DataColumn("Selected", typeof(bool));
dc.Caption = "选择";
dc.DefaultValue = false;
dt.Columns.Add(dc);
}
private void SetSelectedDataTable()
{
m_SelectedDataTable = m_DataTable.Clone();
foreach (DataRow drow in m_DataTable.Rows)
{
if (Convert.ToBoolean(drow["Selected"]) == true)
{
m_SelectedDataTable.ImportRow(drow);
}
}
}
然后再OK事件中
if (m_DataTable != null && m_DataTable.Rows.Count > 0)
{
SetSelectedDataTable();
//业务操作
}如果用List<Object>作为数据源
那么List<实体类> 最好在类中添加一个Bool属性,用作于选择
下来就好办了。
如果多选,原理一样用一个水泛型列表,传这个列表就行了,但注意判断重复数据。
datatable dt=new datatable()
..绑定
dt.Columns.Add("选项",totype(bool));这是手写,注意大小写
datatable dt=new datatable()
..读数据
dt.Columns.Add("选项",totype(bool));
..绑数据 这是手写,注意大小写
for(int i=0;i<datagridview1.SelectedRows.Count;i++)
array.Add(datagridview1.SelectedRows[i].Cell["id"].value.ToString())把这个array传到另一个form
在那边就可以读取了
System.Collections.ArrayList array = new ArrayList();
for (i = 0; i < ProGridView.Rows.Count; i++)
{
if ((bool)ProGridView.Rows[i].Cells[0].EditedFormattedValue)
{
array.Add(ProGridView.Rows[i].Cells[1].Value);
}
}
在另外一个winfrm 访问该array就行了。
for(int i = 0;i<dataGridview1.Rows.Count -1;i++)
{
if(datagridview1.Rows[i].Cells["checkbox列名"].Value == null)
{
contiue;
}
if((bool)datagridview1.Rows[i].Cells["checkbox列名"].Value)
{
list.Add(datagridview1.Rows[i].Cells["ID列"].Value.ToString())
}
}