vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2019
 
zurück
Rubrik: Oberfläche · Sonstiges   |   VB-Versionen: VB4, VB5, VB618.05.04
Einfache SplitterBar mit VB-Boardmitteln

Dieser Tipp zeigt, wie man mit VB-Boardmitteln sehr einfach eine horizontale SplitterBar zum autom. Anordnen zweier Controls realisieren kann.

Autor:   Bernd TheilackerBewertung:     [ Jetzt bewerten ]Views:  16.667 
www.oggisoft.deSystem:  Win9x, WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Heute zeigen wir Ihnen, wie die man mit VB-Boardmitteln sehr einfach eine horizontale SplitterBar zum autom. Anordnen zweier Controls zur Laufzeit realisieren kann.

Hierzu benötigen wir eine Form, ein Bezeichnungsfeld (lblSplitter) und zwei Textfelder (Text1 und Text2).
Tipp: Wenn Sie anstatt der Textfelder Listenfelder verwenden, sollten Sie die Eigenschaft "IntegralHeight" auf False festlegen.

Vielleicht ist Ihnen aufgefallen, das MS Outlook und MS Outlook Express unterschiedliche Methoden bei der Größenänderung verwenden. Diese finden Sie im Bespielprogramm zu diesem Tipp erklärt.

Das erstmalige Anordnen der Controls erledigen wie per Code:

Option Explicit
 
' Konstanten
Const nMinHeight = 700  ' Mindestgröße der Controls
Const nSBarHeight = 90  ' Größe der SplitterBar
 
Private bScrolling As Boolean
Private Sub Form_Load()
  ' Eigenschaften festlegen
  With lblSplitter
    .Caption = ""
    .Height = nSBarHeight  ' Cursor: Größenänderungspfeil
    .MousePointer = 7
  End With
End Sub
Private Sub Form_Resize()
  ' TextBoxen und SplitterBar ausrichten
  Dim nHeight As Long
  Dim nTop As Long
 
  If Me.WindowState <> vbMinimized Then
    With Text1
      .Move 0, 0, Me.ScaleWidth
      nHeight = Me.ScaleHeight - nMinHeight - nSBarHeight
      If nHeight < 0 Then nHeight = 0
      If .Height > nHeight Then .Height = nHeight
    End With
 
    lblSplitter.Move 0, Text1.Height, Me.ScaleWidth
 
    With Text2
      .Move 0, lblSplitter.Top + lblSplitter.Height, Me.ScaleWidth
      nHeight = Me.ScaleHeight - .Top
      If nHeight < 0 Then nHeight = 0
      .Height = nHeight
    End With
  End If
End Sub

Beim Klick auf das Label - also auf unser SplitterBar-Control - müssen die beiden Textboxen in ihrer Größe (Höhe) neu angeordnet werden:

Private Sub lblSplitter_MouseDown(Button As Integer, _
  Shift As Integer, X As Single, Y As Single)
 
  ' gescrollt wird nur bei gedrückter maustaste
  bScrolling = True
End Sub
Private Sub lblSplitter_MouseMove(Button As Integer, _
  Shift As Integer, X As Single, Y As Single)
 
  Dim lblPos As Long
 
  If bScrolling Then
    ' nur Scrollen, wenn die Maustaste gedrückt ist
 
    ' Position
    lblPos = Y + lblSplitter.Top
 
    ' oberen und unteren Rand festlegen, über den
    ' nicht hinaus gescrollt werden soll
    If lblPos < (Me.ScaleHeight - nMinHeight) And _
      lblPos > (Me.ScaleTop + nMinHeight) Then
 
      ' Höhe an lblPos angleichen
      Text1.Height = lblPos - Text1.Top
 
      ' Kleinen Spalt zwischen den beiden
      ' Textfeldern erzeugen
      Text2.Top = Text1.Height + lblSplitter.Height
 
      ' 2. TextBox in der Größe anpassen
      Text2.Height = Me.ScaleHeight - Text2.Top
    End If
  End If
End Sub
Private Sub lblSplitter_MouseUp(Button As Integer, _
  Shift As Integer, X As Single, Y As Single)
 
  ' Label zwischen die beiden Steuerelemente setzen
  lblSplitter.Top = Text1.Height
 
  ' Scrollen beenden
  bScrolling = False
End Sub

Das war's dann auch schon
 

Dieser Tipp wurde bereits 16.667 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
(einschl. Beispielprojekt!)

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