Komme mal wieder nicht weiter.
Versuche gerade beim CurrentCellChanged-Event des DataGrid den "Object sender" auszulesen und mir den Wert von oldRow in einer Variabel zu merken.
Im Überwachungsfenster bekomme ich bei ((DataGrid)sender).oldRow den Wert 2 angezeigt.
Möchte ich diesen Wert an die dgBestand.CurrentCell = new DataGridCell(((DataGrid)sender).oldRow,3) übergeben, bekomme ich beim Kompilieren die Fehlermeldung "Auf 'System.Windows.Forms.DataGrid.oldRow' ist der Zugriff aufgrund der Sicherheitsebene nicht möglich"
Was mach ich Falsch?
Möchte gerne wenn ich die Zeile im Grid wechsel prüfen ob die Zelle 1 ≤ Zelle 2 ist. Wenn nicht dann makiere wieder Zelle 2 in der alten Reihe.
Hallo cpetit,
Was mach ich Falsch?
Das Feld oldRow ist privat, und du kannst deshalb nicht darauf zugreifen.
Das "Überwachungsfenster" funktioniert mit Reflection und kann deshalb den Wert anzeigen.
Gruss
Friedel
Ohne Ziel ist auch der Weg egal.
Die Frage riecht danach, dass du noch überhaupt nicht firm in Sachen OO bist. Ich empfehle, nochmal ein paar Kapitel dazu in deinem Buch zu lesen.
Aber die Antwort heisst: Definiere oldRow als (private) Variable in deinem Forms-Objekt, auf der sich das DataGrid befindet.
Die Frage riecht danach, dass du noch überhaupt nicht firm in Sachen OO bist. Ich empfehle, nochmal ein paar Kapitel dazu in deinem Buch zu lesen.
Stimmt.
Aber die Antwort heisst: Definiere oldRow als (private) Variable in deinem Forms-Objekt, auf der sich das DataGrid befindet.
Verstehe ich nicht ganz. Stehe vermutlich total auf dem Schlauch
Bin zu einer Lösung gekommen.
Hätte aber noch eine Frage.
Wenn ich jetzt eine Zelle im DataGrid einen Wert eingebe und verlasse mit der Maus das DataGrid, dann steht das DataGrid immer noch im Edit-Modus.
Wie kann ich die Änderung bei "Leave-Event des DataGrid" speichern?
Hallo cpetit,
freut mich, wenn du eine Lösung gefunden hast, aber poste diese doch bitte in Zukunft, da jemand anderes diese vielleicht braucht.
Im Leave-Event die Daten zu speichern, also den Editor zu schliessen halte ich für sehr ungünstig. Es ist so, dass wenn das Grid den Focus verliert dieses die noch nicht gespeicherten Daten speichert.
Mir ist kein Programm bekannt, bei welchem dies anders wäre.
Gruss
Friedel
Ohne Ziel ist auch der Weg egal.
Im Leave-Event die Daten zu speichern, also den Editor zu schliessen halte ich für sehr ungünstig. Es ist so, dass wenn das Grid den Focus verliert dieses die noch nicht gespeicherten Daten speichert.
Mir ist kein Programm bekannt, bei welchem dies anders wäre.
Im SQL Server Management Studio z.B. werden die Werte nach jedem Row-Wechsel gespeichert 😉 Vielleicht meintest du das mit dem Grid-Focus Lost, hast aber das falsche geschrieben 😉
> Codejunky <
hast aber das falsche geschrieben
Jup, hab ich. Meinte eigentlich, wenn der Editor der Zelle den Fokus verliert.
Hab mich wohl zu sehr auf das
verlasse mit der Maus das DataGrid
eingeschossen.
Gruss
Friedel
Ohne Ziel ist auch der Weg egal.