2

我有一个带有 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();
     }
4

1 回答 1

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.
        }
    }

第一个事件告诉它“当它改变时自动提交”,第二个事件是“当值被提交时,做某事”。

于 2012-10-29T16:00:02.877 回答