DataGridViewCheckBoxColumn: Bekomme einfach keinen CheckedChange Event

09/03/2010 - 17:40 von Johannes Eble | Report spam
Hallo allerseits,

ich möchte in meinem unbound DataGridView, dass in der 1. Spalte mit
einer DataGridViewCheckBoxColumn ein Event ausgelöst wird, der mir
sagt, "Benutzer hat in der x.Zeile die Checkbox gecheckt oder
deaktivert". Damit ich dann, wenn eine CheckBox aktiviert wird, alle
anderen CheckBoxen in dieser Spalte deaktivieren kann. Ich will also
gewissermaßen eine RadioButtonColumn simulieren.

Wie geht das? Alle Event scheinen unbrauchbar für diese elementare
Operation zu sein. dataGridView1_CellValueChanged bringt bei mir immer
false bei
this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;

Wann dataGridView1_CellValueChanged aufgerufen wird, ist mir
schleierhaft, jedenfalls nicht, wenn ein Benutzer eine Checkbox einer
anderen Zeile anklickt.

Irgendwelche Ideen?

Gruss

Johannes
 

Lesen sie die antworten

#1 Frank Dzaebel
09/03/2010 - 19:21 | Warnen spam
Hallo Johannes,

ich möchte in meinem unbound DataGridView, dass in der 1. Spalte mit
einer DataGridViewCheckBoxColumn ein Event ausgelöst wird, der mir
sagt, "Benutzer hat in der x.Zeile die Checkbox gecheckt oder
deaktivert".



Der Knackpunkt ist der EditedFormattedValue dabei:

{
// [...]
personDataGridView.CellContentClick += Dgv_CellContentClick;
}

void Dgv_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
DataGridView dgv = (DataGridView)sender;
DataGridViewCell cell = dgv[e.ColumnIndex, e.RowIndex];

if (cell.ColumnIndex != dataGridViewCheckBoxColumn1.Index) return;
Console.WriteLine(string.Format("dgv[col:{0}, row:{1}] = {2}",
cell.ColumnIndex, cell.RowIndex, cell.EditedFormattedValue));
}

Aus dem [Download2] von:

[Typsichere Eigenschaften bei Datenbindung]
http://dzaebel.net/TypesafeProps.htm


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen