我有一个带有2列的gridview,一个是名为“choose”的DataGridViewCheckBoxColumn,另一个是名为“ID”的普通DataGridViewTextBoxColumn ...我想在检查chechkbox列时立即更改文本框的文本....但我不知道应该使用哪个事件......
void SetTextBox()
{
TextBox1.Text="";
for (int i = 0; i < MyGrid.Rows.Count; i++)
if (Convert.ToBoolean(MyGrid.Rows[i].Cells["choose"].Value) == true)
{
TextBox1.Text += MyGrid.Rows[i].Cells["ID"].Value.ToString()+",";
}
}
private void !!!!which Event?!!!!(object sender, EventArgs e)
{
SetTextBox();
}
答案 0 :(得分:1)
实际上你需要处理两件事。这是一个改编自我现在正在处理的代码的例子。
private void dgvRMADetail_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (dgvRMADetail.CurrentCell is DataGridViewCheckBoxCell))
{
dgvRMADetail.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}
private void dgvRMADetail_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == useRowCheckboxColumn.Index)
{
// Logic for doing whatever when the checkbox is checked.
}
}
第一个事件告诉它“当它发生变化时自动提交”,第二个事件是“当值被提交时,做一些事情。”