vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 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

Fragen & Antworten rund um sev-Komponenten
sevdatagrid 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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevdatagrid 3 - Kalender Click 
Autor: ModeratorDieter (Moderator)
Datum: 19.12.17 18:50

Nein, hierfür gibt es kein Ereignis

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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