vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Maus & Tastatur · Maus   |   VB-Versionen: VB2005, VB2008, VB201023.03.11
FlowLayoutPanel: Scrollen über Maus- und Tastatur-Events

Ein Tipp, der zeigt, wie sich der Inhalt des FlowLayoutPanel autom. per Maus und Tastatur scrollen lässt, sobald der Mauszeiger in das Control bewegt wurde.

Autor:   Hubert PröschlBewertung:     [ Jetzt bewerten ]Views:  14.681 
ohne HomepageSystem:  Win2k, WinXP, Win7, Win8, Win10, Win11kein Beispielprojekt 

Auch wenn die vertikale Scroll-Leiste sichtbar ist, reagiert das u.U. FlowLayoutPanel nicht sofort - wie andere Controls - auf die gewohnten Eingaben über Tastatur bzw. Maus. Dies ist erst mit zusätzlichen Programmieraufwand möglich.

Dieser Tipp soll die Funktionsweise veranschaulichen.

Private Sub Form1_Load(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles MyBase.Load
 
  ' AutoScroll aktivieren
  Me.FlowLayoutPanel1.AutoScroll = True
End Sub
' Event-Code für das Maus-Rad:
Private Sub FlowLayoutPanel1_MouseEnter(ByVal sender As Object, _
  ByVal e As System.EventArgs) Handles FlowLayoutPanel1.MouseEnter
 
  FlowLayoutPanel1.Focus()
End Sub
' Event-Code für die Tastatur:
Private Sub FlowLayoutPanel1_PreviewKeyDown(ByVal sender As Object, _
  ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) 
  Handles FlowLayoutPanel1.PreviewKeyDown
 
  Select Case e.KeyCode
    Case Keys.Up
      Call scrollFlowLayoutPanel(Me.FlowLayoutPanel1, "up", False, 2)
    Case Keys.Down
      Call scrollFlowLayoutPanel(Me.FlowLayoutPanel1, "down", False, 2)
    Case Keys.PageUp
      Call scrollFlowLayoutPanel(Me.FlowLayoutPanel1, "up", True)
    Case Keys.PageDown
      Call scrollFlowLayoutPanel(Me.FlowLayoutPanel1, "down", True)
  End Select
End Sub
' Prozedur für das Scrollen per Tastatur
Private Sub scrollFlowLayoutPanel(ByVal flp As System.Windows.Forms.FlowLayoutPanel, _
  ByVal sDirection As String, _
  ByVal bLargeChange As Boolean, _
  Optional ByVal intFactor As Integer = 3)
 
  ' Scrollbetrag
  Dim intChangeAmount As Integer
 
  With flp
    ' Festlegen des in bLargeChange übergebenen Scrollbetrages
    If bLargeChange = False Then
      intChangeAmount = flp.VerticalScroll.SmallChange * intFactor
    Else
      intChangeAmount = flp.VerticalScroll.LargeChange
    End If
 
    ' Aktuelle Position der Scrollbar
    Dim currentPosition As Integer = flp.VerticalScroll.Value
 
    ' Scrollrichtung
    If sDirection.ToLower = "up" Then
      ' Scoll UP
      If currentPosition - intChangeAmount > flp.VerticalScroll.Minimum Then
        flp.VerticalScroll.Value -= intChangeAmount
      Else
        flp.VerticalScroll.Value = flp.VerticalScroll.Minimum
      End If
    ElseIf sDirection.ToLower = "down" Then
      ' Scroll DOWN
      If currentPosition + intChangeAmount < flp.VerticalScroll.Maximum Then
        flp.VerticalScroll.Value += intChangeAmount
      Else
        flp.VerticalScroll.Value = flp.VerticalScroll.Maximum
      End If
    End If
 
    ' Layout-Logik anwenden
    flp.PerformLayout()
    My.Application.DoEvents()
  End With
End Sub

Dieser Tipp wurde bereits 14.681 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

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