Hallo!
Ich nutze ein DataGridView, um dem Nutzer Daten anzeigen zu lassen und
editieren zu lassen, die nicht an eine Datenbank angebunden sind. Dazu hat
eien Spalte auch ComboBoxen. Die ComboBoxen sind aber sehr unpraktisch
zu handeln im DataGridView, denn bevor man eine ComboBox "öffnen" kann,
muss man zunächst die Zelle markieren. Im Handling sehr, sehr unpraktisch,
da ein Doppelklick nicht funktioniert.
Meine Lieblingslösung wäre, dass die Zellen überhaupt nicht markiert werden
können (ich brauchs eh nicht) und man so dann die Boxen mit einem Klick
öffnen kann. Kann man das irgendwie hinbekommen?
Oder bietet sich dafür ein anderes Control an? Es müssten aber mehrere Spalten
und Zeilen angezeigt werden können mit Links, Text, Combos und Images...
Grüße,
inTrance
Ok, habs hinbekommen. Keine Ahnung, ob das nicht irgendwelche Seiteneffekte
hat, aber es scheint zu funktionieren:
private void grid_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == welcheAuchImmer && e.RowIndex >= 0)
{
if (grid.Rows[e.RowIndex].Cells[e.ColumnIndex] is DataGridViewComboBoxCell)
{
grid.BeginEdit(true);
if (grid.EditingControl is ComboBox)
{
ComboBox comboBox = (ComboBox)grid.EditingControl;
comboBox.DroppedDown = true;
}
}
}
}