【发布时间】:2013-08-26 08:25:51
【问题描述】:
我有一个 gridview,它有 2 列,一个是文本框列,另一个是复选框列,如何知道选中了哪个复选框。
如图所示,假设任何一个复选框被选中,我想显示该复选框对应的文本框值。
谁能帮助我?我尝试了下面的代码,但我面临的问题是,一旦我点击下一个复选框,就会显示值,然后显示之前选中的复选框值..
dataGridView1.CellValueChanged += new DataGridViewCellEventHandler(dataGridView1_CellValueChanged);
void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
object tempObj = dataGridView1.Rows[e.RowIndex].Cells[1].Value;
dataGridView1_CurrentCellDirtyStateChanged(sender, e);
if (((e.ColumnIndex) == 1) && ((bool)dataGridView1.Rows[e.RowIndex].Cells[1].Value))
{
MessageBox.Show(dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());
}
}
【问题讨论】:
-
你试图做什么?如果您尝试从互联网上搜索,我担心在这里写问题的时间会相同:datagridview.CellValueChanged event或datagridview.CellEndEdit event
-
只看给定单元格的值,记住,对于复选框,只有两个可能的值:真或假。
-
@varocarbas 我同意您的评论,但由于最初未选中复选框,因此检查真假它每次都返回假
-
?!如果所有复选框都未选中,那么您每次都会得到错误(您期望什么?C# 对您撒谎?哈哈)。这就是重点:知道它们是未选中(= false)还是选中(= true)。如果你想改变它的行为,你可以遵循相同的规则,即:Cell.Value = True(选中它)和 Cell.Value = False(取消选中它)。
标签: c# winforms checkbox datagridview datagridviewcheckboxcell