Quellcode-Fehler und zwei andere Fragen

Kann deinen Link von hier nicht öffnen.

Aber das Prinzip beim Scrollen geht so:
Du legst für die Scrollbar einen minimalen und einen maximalen Wert fest und wenn jemand was dran ändert (change/scroll-Ereignis) veränderst du die Top/Left-Eigenschaften der Steuerelemente die gescrollt werden sollen entsprechend dem Wert der Scrollbar.

Die "Hilfe" ist das was du bei jedem guten Programm in der Menüleiste unter [?]=>Hilfe oder beim Drücken von F1 bekommst. Falls du sie nicht installiert hast hol es nach. Da steht bei VB wirklich viel drin, gerade Beispiele oder welche Funktionen/Eigenschaften ein Objekt hat und wie man diese verwendet.
Alternativ dazu kannst du dir auch die MSDN anschauen.

/edit:
Wenn du den Tipp nicht gleich hinbekommst kannst ja mal das Beispielprojekt runterladen und dann Schritt für Schritt was verändern um ein Gefühl für das was du da machst zu bekommen.
 
Das habe ich gemacht, komme nur bei einem nicht weiter... Vielleicht kannst Du ja irgendwann nochmal reinsehen...

Danke :D
 
Hab mal ein kleines Beispiel geschrieben:

Ordne 7 Buttons auf einem Formular wie im Bild1 an.
Schiebe das Formular dann zusammen wie im Bild2.
Für dein Programm kannst du sie natürlich auch dynamisch erzeugen.
Starte das Formular und beweg die Scrollleiste, fertig ;)

Der Code für das Formular:
Code:
'Beispiel zum Scrollen von Buttons auf einem Frame

Dim C As Control 'für die Schleifenverarbeitung der Buttons

Const AnzahlButtons As Integer = 7         'Anzahl der zu scrollenden Buttons
Const ButtonName    As String = "Command"  'Der Name aller Buttons beginnt mit diesem Namen
                                           'z.B. Command1, Command2, ...

Dim Abstand As Integer 'Abstand zwischen den Buttons
Dim Hoehe   As Integer 'Höhe eines Buttons

Private Sub Form_Load()
    Abstand = Command1.Top  'Werte an einem Button ablesen
    Hoehe = Command1.Height
    
    'Position merken von allen Steuerelementen deren Name
    'mit "Command" anfängt:
    For Each C In Controls 'Für jedes Steuerelement
        If Left(C.Name, Len(ButtonName)) = ButtonName Then 'Wenn der Name eines Steuerelements mit "Button" anfängt
            C.Tag = C.Top '...speichere seine Position in der Tag-Eigenschaft
        End If
    Next C
    
    'Scrollbar initialisieren:
    With VScroll1
        .Min = 0
        .Max = AnzahlButtons * (Abstand + Hoehe)
        .Value = 0
        .SmallChange = Int(.Max / 100)
        .LargeChange = Int(.Max / 10)
    End With
End Sub

Private Sub VScroll1_Change()
    'Position für jeden Button setzen
    'Schleifenbeschreibung siehe oben
    For Each C In Controls
        If Left(C.Name, Len(ButtonName)) = ButtonName Then
            C.Top = CInt(C.Tag) - VScroll1.Value 'Button verschieben
        End If
    Next C
End Sub
 

Anhänge

  • img1.jpg
    img1.jpg
    14,5 KB · Aufrufe: 28
Zuletzt bearbeitet:
Zurück