C# 如何检查在datagridview中单击的单元格
在datagridview的第一列中,我有一些复选框,每次复选框的状态更改时,我都要触发一个事件。我考虑使用cellcontentclick事件,将sender对象强制转换为datagridviewcell,并通过其列索引进行检查。但是我发现sender对象是datagridview对象。那么,如何执行所需的操作呢?有很多方法 一种方法是:C# 如何检查在datagridview中单击的单元格,c#,datagridview,cell,C#,Datagridview,Cell,在datagridview的第一列中,我有一些复选框,每次复选框的状态更改时,我都要触发一个事件。我考虑使用cellcontentclick事件,将sender对象强制转换为datagridviewcell,并通过其列索引进行检查。但是我发现sender对象是datagridview对象。那么,如何执行所需的操作呢?有很多方法 一种方法是: 您可以在页面上获取一个隐藏字段或视图状态,当javascript单击时,您可以在其中存储行id,然后在代码隐藏中获取该隐藏字段值 另一个: 您可以使用Com
您可以在页面上获取一个
隐藏字段
或视图状态
,当javascript单击时,您可以在其中存储行id,然后在代码隐藏中获取该隐藏字段值
另一个:您可以使用
CommandName
&CommandArgument
并在代码隐藏中使用datagridview\u ItemCommand
来处理CheckBoxCell
值更改您必须使用此事件CellValueChanged
。事件中的发件人始终是引发事件的控件。要获得更多关于发生了什么的信息,您需要查看EventArgs
返回处理CheckBoxCell
执行以下操作:
private void dgv_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
var dgv = sender as DataGridView;
var check = dgv[e.ColumnIndex, e.RowIndex].Value as bool?;
if (check.HasValue)
{
if (check)
{
//checked
}
else
{
//unchecked
}
}
}
希望这有帮助:)这是Winforms、Wpf还是Asp.NET您是如何将数据绑定到您的
DataGridView
<代码>绑定源,数据表
还是未绑定数据?
private void dgvStandingOrder_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (dgvStandingOrder.Columns[e.ColumnIndex].Name == "IsSelected" && dgvStandingOrder.CurrentCell is DataGridViewCheckBoxCell)
{
bool isChecked = (bool)dgvStandingOrder[e.ColumnIndex, e.RowIndex].EditedFormattedValue;
if (isChecked == false)
{
dgvStandingOrder.Rows[e.RowIndex].Cells["Status"].Value = "";
}
dgvStandingOrder.EndEdit();
}
}
private void dgvStandingOrder_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
dgvStandingOrder.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
private void dgvStandingOrder_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (dgvStandingOrder.CurrentCell is DataGridViewCheckBoxCell)
{
dgvStandingOrder.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}