کدها در رویداد CellContentClick جواب میدن، و در رویداد CellValueChanged جواب مناسبی بر نمیگردونن.
برای اینکه با هر بار انتخاب یک چک باکس تنها شماره سطر مربوط به همون چک باکس رو نشون بده از این کد استفاده کنید:
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
dataGridView1.EndEdit();
if ((bool)dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value)
{
MessageBox.Show(e.RowIndex.ToString());
}
}
و برای اینکه در هر بار انتخاب چک باکس تمامی سطرهای انتخاب شده رو نشون بده از این کد استفاده کنید:
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
dataGridView1.EndEdit();
for (int i = 0; i < dataGridView1.RowCount - 1; ++i)
{
if ((bool)dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value)
{
MessageBox.Show(i.ToString());
}
}
}
یا
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
dataGridView1.EndEdit();
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (Convert.ToBoolean(row.Cells[e.ColumnIndex].Value) == true)
{
MessageBox.Show(row.Index.ToString());
}
}
}
توسط
امیدوار
(2,595 امتیاز)
●5 ●15 ●90