vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Datagridview Edit Cell bei Klick auf Menu-Punkt oder Symbolleisten-Button ... 
Autor: Dideldum
Datum: 30.07.23 15:03

Hi Ihr,

wieder so ein dusseliges Problem, für welches ich keine Lösung finde.

Ich klicke langsam zweimal in eine DGV-Zelle, dann wird diese editierbar.
Soweit so gut.

Aber wenn ich in diesem Zellenzustand auf einen Menupunkt oder ein Symbol in meiner Symbolleiste klicke, wird das Editieren der Zelle nicht abgeschlossen, sondern diese behält die Texteingabe-Möglichkeit bei.

Das CellEndEdit wird also nicht ausgelöst.

Wie es mir erscheint, wird CellLeave und CellValidating dann erst ausgelöst, wenn ein anderer Prozess die DGV verändert.
Dann sind die Zellenwerte aber schon verändert und meine Umbenennungsroutine erzeugt einen Fehler.

Klicke ich anstelle eines Menupunkts oder eines SymbolleistenSymbols aber auf ein anderes Control, wird das Editieren der Zelle korrekt abgeschlossen.

Wie kann ich dieses Problem verhindern?
Wäre toll, wenn mir da einer von Euch helfen könnte.

ChatGPT versteht nicht, was mein Problem ist...


Alle drei folgenden Subs werden zu spät ausgeführt - dann, wenn die Tabelle bereits verändert wurde. Bzw. im Falle der dgv_Files_Leave überhaupt nicht, wenn ich einen Menupunkt oder ein SymbolleistenSymbol anklicke.

    Private Sub dgv_Files_Leave(sender As Object, e As EventArgs) Handles _
      dgv_Files.Leave
        dgv_Files.CancelEdit()
    End Sub
 
 
    Private Sub dgv_Files_CellLeave(sender As Object, e As _
      DataGridViewCellEventArgs) Handles dgv_Files.CellLeave
        dgv_Files.CancelEdit()
    End Sub
 
 
    Private Sub dgv_Files_CellValidating(sender As Object, e As _
      DataGridViewCellValidatingEventArgs) Handles dgv_Files.CellValidating
        If dgv_Files.IsCurrentCellDirty Then
            Dim currentValue As Object = dgv_Files.CurrentCell.Value
            Dim newValue As Object = e.FormattedValue
 
            ' Überprüfen, ob die Änderungen ungültig sind
            If Not CheckFileName(newValue) Then
                dgv_Files.CancelEdit()
            End If
        End If
    End Sub
Ein schönes Rest-Wochenende @All
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datagridview Edit Cell bei Klick auf Menu-Punkt oder Symbolleisten-Button ... 
Autor: Dideldum
Datum: 30.07.23 15:19

Wenn ich in die erste Zeile des Buttonhandlers eines Symbolleistenbuttons reinschreibe:

trv_Folders.select()
wird das CellEndEdit korrekt vor der Neubefüllung der Tabelle in der DGV ausgeführt.

Schreibe ich in die erste Zeile eines SymbolleistenButton-Handlers aber:

me.select()
erhalte ich wieder den Fehler in der CellEndEdit der DGV-Files, dass die Tabelle verändert wurde.

Wie kann ich das Problem sauber lösen?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datagridview Edit Cell bei Klick auf Menu-Punkt oder Symbolleisten-Button ... 
Autor: Dideldum
Datum: 07.08.23 04:05

Hi Ihr,

hat denn keiner einen Tip, was ich machen kann, dass beim Anklicken eines Menupunkts in der Menuleiste oder eines Symbolleisten-Buttons tatsächlich ein CellEndEdit der gerade bearbeiteten DGV-Zelle ausgeführt wird?

Eigentlich müsste das m.E. automatisch erfolgen.

Bekommen diese Controls vielleicht gar nicht wirklich den Focus beim Anklicken und dadurch wird kein CellLeave und kein CellValidating ausgelöst?

Muss ich tatsächlich in jeden MenuClick- und ButtonClick-Handler manuell einen SetFocus auf ein Control setzen muss, der dann das CellEndEdit auslöst.

Dieses Problem müssten doch schon viele hier gehabt haben, oder?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel