DataGridView 添加checkbox
2013-06-21 14:08
471 查看
DataGridViewCheckBoxColumn newColumn = new DataGridViewCheckBoxColumn();
newColumn.HeaderText = "选择";
dataGridView1.Columns.Add(newColumn);
这样添加的列是放在最后一列,也许你希望它在其它列,例如第二列,那么可以:
dataGridView1.Columns.Insert(1, newColumn);
DataGridView中的DataGridViewCheckBoxColumn是很难控制的,当 DataGridView 未绑定
到数据时,对单元格的编辑会在用户移到另一个单元格时被交
DataGridView.IsCurrentCellDirty 属性
如果当前单元格有未提交的更改,为 true;否则为 false。处理方法
if (dataGridView.IsCurrentCellDirty)
{//将当前单元格中的更改提交到数据缓存,但不结束编辑模式。 dataGridView.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
在winfrom 的DataGridView中添加一列,ColumnType属性设置为DataGridViewCheckBoxColumn。
假设设置Name属性为SelIndex
1、选择全部列
private void btnSelALl_Click(object sender, EventArgs e)
{
DataTable dt = (dataGridView1.DataSource as DataTable);
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["SelIndex"] = 1;
}
}
2、取得某一选择行的值
private void btnGetRows_Click(object sender, EventArgs e)
{
//刷新
if (dataGridView1.IsCurrentCellDirty)
{
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
//取得选中的行
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
if (dataGridView1.Rows[i].Cells["SelIndex"].Value.ToString() == "1")
{
//相应的操作
MessageBox.Show( dataGridView1.Rows[i].Cells["Test"].Value.ToString());
}
}
}
其他:添加 一行(比如说合计行)
index = dataGridView1.Rows.Add();
DataGridViewRow newrow = dataGridView1.Rows[index];
newrow.Cells[0].Value = ...;
newrow.Cells[1].Value = ...;
newrow.Cells[2].Value = ...
3
首先datagridview属性--> 编辑列--> DataGridViewCheckBoxColumn中的数据有设falsevalue和truevalue
C# code
if (this.checkBox1.Checked)
{
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
this.dataGridView1.Rows[i].Cells["Column0"].Value = 1;
}
}
else
{
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
this.dataGridView1.Rows[i].Cells["Column0"].Value = 0;
}
}
// checkbox 勾上
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if ((bool)dataGridView1.Rows[e.RowIndex].Cells[0].EditedFormattedValue == true)
{
dataGridView1.Rows[e.RowIndex].Cells[0].Value = false;
}
else
{
dataGridView1.Rows[e.RowIndex].Cells[0].Value = true;
}
}
newColumn.HeaderText = "选择";
dataGridView1.Columns.Add(newColumn);
这样添加的列是放在最后一列,也许你希望它在其它列,例如第二列,那么可以:
dataGridView1.Columns.Insert(1, newColumn);
DataGridView中的DataGridViewCheckBoxColumn是很难控制的,当 DataGridView 未绑定
到数据时,对单元格的编辑会在用户移到另一个单元格时被交
DataGridView.IsCurrentCellDirty 属性
如果当前单元格有未提交的更改,为 true;否则为 false。处理方法
if (dataGridView.IsCurrentCellDirty)
{//将当前单元格中的更改提交到数据缓存,但不结束编辑模式。 dataGridView.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
在winfrom 的DataGridView中添加一列,ColumnType属性设置为DataGridViewCheckBoxColumn。
假设设置Name属性为SelIndex
1、选择全部列
private void btnSelALl_Click(object sender, EventArgs e)
{
DataTable dt = (dataGridView1.DataSource as DataTable);
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["SelIndex"] = 1;
}
}
2、取得某一选择行的值
private void btnGetRows_Click(object sender, EventArgs e)
{
//刷新
if (dataGridView1.IsCurrentCellDirty)
{
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
//取得选中的行
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
if (dataGridView1.Rows[i].Cells["SelIndex"].Value.ToString() == "1")
{
//相应的操作
MessageBox.Show( dataGridView1.Rows[i].Cells["Test"].Value.ToString());
}
}
}
其他:添加 一行(比如说合计行)
index = dataGridView1.Rows.Add();
DataGridViewRow newrow = dataGridView1.Rows[index];
newrow.Cells[0].Value = ...;
newrow.Cells[1].Value = ...;
newrow.Cells[2].Value = ...
3
首先datagridview属性--> 编辑列--> DataGridViewCheckBoxColumn中的数据有设falsevalue和truevalue
C# code
if (this.checkBox1.Checked)
{
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
this.dataGridView1.Rows[i].Cells["Column0"].Value = 1;
}
}
else
{
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
this.dataGridView1.Rows[i].Cells["Column0"].Value = 0;
}
}
// checkbox 勾上
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if ((bool)dataGridView1.Rows[e.RowIndex].Cells[0].EditedFormattedValue == true)
{
dataGridView1.Rows[e.RowIndex].Cells[0].Value = false;
}
else
{
dataGridView1.Rows[e.RowIndex].Cells[0].Value = true;
}
}
我的全选是这样的,是可以的呀 //循环dataGridView for (int i = 0; i < dgvOperation.Rows.Count; i++) { //设置设置每一行的选择框为选中,第一列为checkbox dgvOperation.Rows[i].Cells[0].Value = true; } 这个是反选的作用 //循环dataGridView for (int i = 0; i < dgvOperation.Rows.Count; i++) { //判断当前行是否被选中 if ((bool)dgvOperation.Rows[i].Cells[0].EditedFormattedValue == true) //设置每一行的选择框为未选中 dgvOperation.Rows[i].Cells[0].Value = false; else //设置每一行的选择框为选中 dgvOperation.Rows[i].Cells[0].Value = true; }
相关文章推荐
- DataGridView 添加checkbox
- DataGridView如何添加CheckBox?
- DataGridView中添加CheckBox控件主要采用两种方法
- winform 中 给DataGridView的表头添加CheckBox
- dataGridView 单元格添加combox checkbox
- 20161020001 DataGridView 选中的 DataGridViewCheckBoxCell 不添加重复项
- Winform中 DataGridView添加 CheckBox列的问题集锦
- winform 中 给DataGridView的表头添加CheckBox
- winform 中 给DataGridView的表头添加CheckBox
- DataGridView添加CheckBoxColumnHeader(3)
- 给 winform datagridview 头部 添加 checkbox 全选控件
- [转]dataGridView动态添加CheckBox列
- 通过绘制在datagridview控件列头添加一个checkbox控件
- Winform开发 如何为dataGridView 添加CheckBox列,并获取选中行
- DataGridView 添加checkbox
- DataGridView中添加CheckBox列用于选择行
- 通过绘制在datagridview控件列头添加一个checkbox控件
- 通过绘制在datagridview控件列头添加一个checkbox控件
- 在C/S架构中,给DataGridView的表头添加CheckBox控件
- dataGridView添加各种列(DataGridViewComboBoxColumn、DataGridViewCheckBoxColumn、DataGridViewLinkColumn...)