问题
i had a gridview which has 2 columns , one is textbox column and other is checkbox column, how to know which checkbox is checked .
As shown in image ,suppose any of the checkbox is checked , i want to display that the corresponding text box value to that checkbox.
can anyone help me?i tried the below code , but problem which i am facing is that , the values is getting displayed once i clicked to next checkbox then the previously checked checkbox values is getting displayed..
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());
}
}
回答1:
private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (dataGridView1.IsCurrentCellDirty)
{
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (((e.ColumnIndex) == 1) && ((bool)dataGridView1.Rows[e.RowIndex].Cells[1].Value))
{
MessageBox.Show(dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());
}
}
these below links helped me to understand the concept of cellvalue_changed and cell_content_click.. http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellvaluechanged.aspx
and by the help of these links i finally got the solution to my problem
回答2:
it is as simple as this
//replace the row number and column name with your own
if ((bool)dataGridView1.Rows[0].Cells["Column1"].Value)
{
//do your work
}
回答3:
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex > -1 && e.ColumnIndex > -1)
label1.Text = dataGridView1.Rows[e.RowIndex].Cells["Col1"].Value.ToString();
}
回答4:
private void dataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == *someIndex*)
{
DataGridViewCheckBoxCell cell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex] as DataGridViewCheckBoxCell;
if (cell != null)
{
if (cell.EditingCellValueChanged)
{
//CheckBox has been clicked
}
//here how to get the checkBoxCell value
var cellChecked = cell.EditingCellFormattedValue;
}
}
}
来源:https://stackoverflow.com/questions/18439758/how-to-know-a-specific-checkbox-inside-datagridview-is-checked-or-not