Laden...

DataGridView: ReadOnly Zellen editieren

Erstellt von fh2k10 vor 12 Jahren Letzter Beitrag vor 12 Jahren 2.120 Views
F
fh2k10 Themenstarter:in
5 Beiträge seit 2011
vor 12 Jahren
DataGridView: ReadOnly Zellen editieren

moin moin,

Mein Programm:
das dgv ist von anfang an auf ReadOnly gestellt.
die zeilen werden per textboxen.text + btn clickevents befüllt.

meine frage:
wie lassen sich einzelne zellen per (zb. doubleclick) events editieren, so dass man nicht immer die ganze zeile löschen muss ?
die idee ist, dass nur zellen in spalte 2 und 3 editiert werden dürfen, dh. ich habe schon folgenden code erstellt


        private void dgv_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (dgv.CurrentCell.ColumnIndex == 2 || dgv.CurrentCell.ColumnIndex == 3)
            {
                dgv.CurrentCell.ReadOnly = false;
//hier fehlt nun die funktion der manuellen Tastatureingabe
                dgv.CurrentCell.ReadOnly = true;
             }
         }

wie kann man die eingabe des users erkennen, oder muss man dafür noch ein "eingabe" event erstellen ? (mit index merken und focus() hats auch nicht geklappt)

1.564 Beiträge seit 2007
vor 12 Jahren

Hi

Schau dir mal die "EditMode" Eigenschaft des DataGridView an.

Grüße
Flo

Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+

Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.

F
fh2k10 Themenstarter:in
5 Beiträge seit 2011
vor 12 Jahren

ok danke für die schnelle antwort.

        private void dgv_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {

            if (dgv.CurrentCell.ColumnIndex == 2 || dgv.CurrentCell.ColumnIndex == 3)
            {
                dgv.CurrentCell.ReadOnly = false;

                dgv.EditMode = DataGridViewEditMode.EditOnEnter;

                dgv.BeginEdit(true);

            }

        }

dieser code sollte doch theoretisch funktionieren oder muss ich nun noch ein BeginEdit event aktivieren/basteln?

Datagridview Working with edit mode

1.564 Beiträge seit 2007
vor 12 Jahren

Hi

Nein, nicht ganz so. Du stellst den EditMode des Grids beispielsweise auf "EditProgrammatically" (wobei ich erstmal schauen würde ob nicht eine der anderen Möglichkeiten eh schon passt). Setzte das Grid nicht auf ReadOnly, sondern nur die Spalten die du nicht editieren willst. Wenn du's dann wirklich mit Doppelklick willst, rufst du im CellDoubleClick die BeginEdit Methode auf.

Grüße
Flo

Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+

Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.

F
fh2k10 Themenstarter:in
5 Beiträge seit 2011
vor 12 Jahren

meine lösung:

das dgv erhält die eigenschaft ReadOnly=false;
nach dem start benutze ich 2 events (Laden und Hinzufügen) in denen die ersten beiden spalten auf ReadOnly = true; gesetzt werden. die restlichen spalten bleiben ReadOnly = false; und können editiert werden....auch ohne EditMode.