vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 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
Re: sevDataGrid2: aktuelle Zeile beim scrollen 
Autor: Nordlicht24
Datum: 09.12.07 17:07

So, ich habe jetzt eine Lösung gefunden, ohne dass das Grid 'scrollt', und zwar:
Private pageScroll as boolean
 
Private Sub Grid1_KeyDown(KeyCode As Integer, Shift As Integer)
    ' auch wenn in <Grid1_Scroll> TopRow als Row zugewiesen wird, geht 
    ' KeyUp/KeyDown von der VOR dem
    ' Scroll aktiven Zeile aus (IsSelected zeigt beim Einsprung in <KeyDown> 
    ' nicht auf TopRow!).
    With Grid1
        If KeyCode = vbKeyUp Then
            If .Row = 1 Then
                KeyCode = 0
                Exit Sub
            End If
        End If
 
        If Not .RowIsVisible(.Row) Then
            If .Row < .TopRow Then  ' akt. Zeile oberhalb des sichtbaren 
            ' Gridfensters
                .Row = .TopRow      ' KeyCode NICHT auf 0 = 1 Zeile nach unten
            End If
            If .Row > .TopRow Then  ' die Form des Vergleichs genügt (.Row 
            ' unterhalb des sichtbaren Gridfensters)
                .Row = .TopRow
            End If
        Else
            If PageScroll Then      ' SeitenScroll ist unmittelbar 
            ' vorausgegangen
Debug.Print "PageScroll gesetzt! bisherige Zeile in derselben Page"
                ' bisher selektierte Zeile ist noch im sichtbaren Bereich (Page 
                ' 1)
                If .Row <> .TopRow Then
                    .Row = .TopRow
                End If
            End If
        End If
    End With
End Sub
 
Private Sub Grid1_RowChange(ByVal nRow As Long)
    PageScroll = False
....
 
Private Sub Grid1_Scroll(ByVal nScrollBar As sevDataGrid2.sevGridScrollBar)
    If nScrollBar = VScrollBar Then
        Grid1.Row = Grid1.TopRow
        PageScroll = True
    End If
End Sub
Das Flag 'PageScroll' ist erforderlich, weil - speziell am Ende einer Tabelle - der zuletzt selektierte Datensatz beim rückwärtsscrollen nicht zwangsläufig außerhalb des dann sichtbaren Gridbereiches liegen muss.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
sevDataGrid2: aktuelle Zeile beim scrollen852Nordlicht2406.12.07 15:21
Re: sevDataGrid2: aktuelle Zeile beim scrollen602ModeratorDieter06.12.07 17:14
Re: sevDataGrid2: aktuelle Zeile beim scrollen569Nordlicht2406.12.07 17:59
Re: sevDataGrid2: aktuelle Zeile beim scrollen623Nordlicht2409.12.07 17:07

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