| |

Fragen & Antworten rund um sev-KomponentenSevDataGrid2 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...  |  |
 | 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 |
  |
|
Neu! sevCommand 4.0 
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
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
|
|