vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

Fragen & Antworten rund um sev-Komponenten
SevDataGrid2 und AbortEdit 
Autor: Reinski
Datum: 11.04.05 15:39

Hallo zusammen,
ich habe ein SevDataGrid2 (Version 2.0.0.24) mit AllowEdit=True.
Außerdem noch ein roCommand (Sev Komfortable Schaltflächen, Version 2.1.0.22) auf der Form.
Jetzt möchte ich vermeiden, dass sich eine Zelle im Grid im EditierModus (also mit Rahmen und Cursor-Mauszeiger beim Darüberfahren) befinden kann, wenn das Grid nicht den Fokus hat.
Dafür gibt es ja die AbortEdit-Methode die ich im LostFocus Ereignis plaziert habe.

Folgendes Verhalten möchte ich bewirken:
Befindet sich der Fokus innerhalb einer Grid-Zelle (also IsEditMode=MODE_EDIT) und klickt der Anwender dann auf den Button, sollen die Änderungen im Grid verworfen, der EditierModus beendet, der Fokus auf den Button verschoben und das Click Ereignis des Buttons ausgelöst werden.

Leider verhält sich meine Lösung recht überraschend, denn das AbortEdit bewirkt, dass das Click-Ereignis des Buttons zweimal ausgelöst wird!
Hier ein Beispielprojekt zum Nachvollziehen:
Ein Form mit
SevDataGrid2 (SevGrid1)
RoCommand (roCommand1)
Label (Label1)
und folgender Code:
Option Explicit
 
Private Sub Form_Load()
    'Label initialisieren
    Label1.Caption = "0"
    'Grid aufbauen
    With sevGrid1
        'Grid Einstellungen vornehmen
        .DataMode = Mode_List
        .AllowEdit = True
        .ColumnAdd "Spalte1", "Spalte 1"
        .ColumnAdd "Spalte2", "Spalte 2"
        'Grid mit drei Zeilen füllen
        .AddItem "Eine Zeile" & vbTab & "Erster Eintrag"
        .AddItem "Weitere Zeile" & vbTab & "Zweiter Eintrag"
        .AddItem "Noch eine Zeile" & vbTab & "Dritter Eintrag"
    End With
End Sub
 
Private Sub roCommand1_Click()
    'Label um eins hochzählen
    Label1.Caption = Val(Label1.Caption) + 1
End Sub
 
Private Sub sevGrid1_LostFocus()
    If sevGrid1.IsEditMode = MODE_EDIT Then
        'Änderungen verwerfen & EditMode beenden
        sevGrid1.AbortEdit
    End If
End Sub
Das Label zählt also die Click-Events für den Button mit und sollte pro Klick um eins hochgezählt werden.
Geht man vorher aber in den EditierModus (Doppelklick auf eine Zelle im Grid) und klickt dann auf den Button, sieht man dass das Click-Ereignis zweimal ausgelöst wird.
Ersetzt man sevGrid1.AbortEdit durch sevGrid1.UpdateRow verhält es sich übrigens genauso!

Witzigerweise hab ich das ganze mal mit einem Standard CommandButton statt roCommand ausprobiert und da wird gar kein ClickEvent ausgeführt, wenn sich das Grid im EditierModus befand.

Für Hilfe wäre ich sehr dankbar!
Gruß!

Reinski

Immer noch auf der Suche nach dem "Tu's trotzdem"-Button...

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
SevDataGrid2 und AbortEdit1.004Reinski11.04.05 15:39
Re: SevDataGrid2 und AbortEdit519ModeratorDieter11.04.05 16:19
Re: SevDataGrid2 und AbortEdit495Reinski11.04.05 18:31
Re: SevDataGrid2 und AbortEdit531ModeratorDieter11.04.05 20:59
Danke! 586Reinski11.04.05 22:12

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-2025 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