| |
Fragen & Antworten rund um sev-Komponentensevdatagrid 3 - Kalender Click | | | Autor: RBC | Datum: 19.12.17 18:17 |
| Hallo Dieter,
nochmal eine Frage zum Kalender im sevdatagrid:
Wenn ich ein Datum aus dem Kalender auswähle, erscheint das datum im Grid in einer Zelle, ich muss aber danach immer noch entweder die ENTER-Taste, oder mit der Maus irgendwo anders klicken, um das neue Datum in die Zelle zu übernehmen. Geht das auch direkt, dass nach der Auswahl des Datums das neue Datum sofort in der Zelle steht.
Vielen Dank für eine Antwort | |
Re: sevdatagrid 3 - Kalender Click | | | Autor: MarkM | Datum: 19.12.17 23:18 |
| Hallo Robert,
Dieter hat natürlich vollkommen Recht, es gibt kein Event wie "OnCalendarClick" - was aber cool wäre
Du könntest als WorkAround aber bspw. im OnButtonClick-Event des Grids einen Timer starten und dort prüfen, ob sich das Grid im Editiermodus befindet und der aktuelle/gespeicherte Wert vom Editierwert unterscheidet, siehe Dokumentation des Grids:
IsEditMode: Gibt einen Wert zurück, der festlegt, ob gerade eine Zelle editiert oder eine neue Datenzeile hinzugefügt wird.
EditText: Gibt den aktuellen Eingabetext im Editier-Modus zurück oder legt diesen fest.
Wenn dem so ist (gespeicherter Wert ungleich Editierwert), hat der Benutzer ein (anderes) Datum im Kalender angeklickt und du sendest in diesem Fall ein Return an das Grid.
Hier mal ein vollständiges Beispielprojekt, das funktioniert bei mir prima:
Private Sub btnFillGrid_Click()
On Error GoTo ErrorHandler
'Grid im ListMode füllen, eine (Datums-)Spalte, ein Item:
With Me.sevGrid1
.Clear
If .Cols = 0 Then
.DataMode = Mode_List
.AllowEdit = True
'Spalte X mit Kalenderfunktion
With .ColumnAdd("Datum", "X", 1500)
.InputType = INPUT_DATE
.SortType = SORT_DATE
.Button = True
End With
End If
.LockUpdate True
.AddItem "01.01.2018"
.LockUpdate False
.Refresh
End With
Exit Sub
ErrorHandler:
MsgBox Err.Number & ": " & Err.Description
End Sub Private Sub sevGrid1_OnButtonClick(ByVal nRow As Long, ByVal nCol As Long, _
sText As String, bCancel As Boolean)
On Error GoTo ErrorHandler
If nCol = Me.sevGrid1.GetCol("Datum") Then
'Timer starten. Dort wird geprüft, ob sich das Datum geändert hat:
Me.tmrCloseEditMode.Enabled = True
End If
Exit Sub
ErrorHandler:
MsgBox Err.Number & ": " & Err.Description
End Sub Private Sub tmrCloseEditMode_Timer()
On Error GoTo ErrorHandler
With Me.sevGrid1
'Prüfen, ob sich das Grid im Editiermodus befindet:
If .IsEditMode = MODE_EDIT Then
'Editiermodus aktiv:
'--> Prüfen, ob sich das Datum geändert hat
If .EditText <> .SelectedItem.CellText("Datum") Then
'Datum hat sich geändert:
'--> Timer stoppen und Return senden
Me.tmrCloseEditMode.Enabled = False
.SendKeys vbKeyReturn, 0
End If
Else
' Editiermodus nicht aktiv
'(je nach Intervall des Timers hat der Benutzer bereits den
' Editiermodus verlassen):
'--> Timer stoppen
Me.tmrCloseEditMode.Enabled = False
End If
End With
Exit Sub
ErrorHandler:
MsgBox Err.Number & ": " & Err.Description
Me.tmrCloseEditMode.Enabled = False
End Sub Liebe Grüße
Mark
Beitrag wurde zuletzt am 19.12.17 um 23:24:09 editiert. | |
Re: sevdatagrid 3 - Kalender Click | | | Autor: RBC | Datum: 20.12.17 04:31 |
| Hallo Mark,
super und vielen Dank für diesen Workaround. Das kann ich gebrauchen.
Schön, dass sich noch mehr Leute mit diesen tollen Erweiterungen beschäftigen.
VG Robert | |
| 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! sevPopUp 2.0
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere InfosTipp des Monats 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-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
|
|