Vertikale Scrollbar bei ListBox ausblenden

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von jvbsl.

    Vertikale Scrollbar bei ListBox ausblenden

    Hallo,

    und zwar würde ich gerne die vertikale Scrollbar einer ListBox deaktivieren. Der Grund ist folgender, das ich mit einer ListBox arbeite, und in der 2. "Enabled = False"-Listbox wird lediglich eine Art Zeilennummerierung angezeigt und es wird automatisch mitgescrollt.

    Daher würde ich aus Designgründen diese gerne Ausblenden.

    Ansonsten würde mir eine Alternative einfallen: TextBox, doch ist es dort auch möglich den TopIndex zu synchronisieren wenn Scrollable = False gesetzt ist? Hört sich für mich eher an als wäre der Scroll komplett deaktiviert.


    Vielen Dank im voraus!
    Ja werde ich dann wohl machen. Konnte nur Custom Funktionen bzw. APIs für C# etc. finden.

    //Edit: Habe es anders gelöst. Habe einfach die 1. ListBox nach rechts über die 2. ListBox verschoben, so dass die vertikale Scrollbar der 1. ListBox also überdeckt wird.

    Nicht ganz perfekt, aber klappt :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „mewcrazy“ ()

    Quellcode

    1. ' API declaration
    2. Option Explicit
    3. Private Declare Function ShowScrollBar Lib "user32" (ByVal hwnd As Long, ByVal wBar As Long, ByVal bShow As Long) As Long
    4. 'Constants
    5. Private Const SB_HORZ = 0 'Horizontal Scrollbar
    6. Private Const SB_VERT = 1 'Vertical Scrollbbar
    7. Private Const SB_BOTH = 3 'Both ScrollBars
    8. Private Sub Form_Load()
    9. ' True = Show ScrollBar
    10. ' Hide = Hides ScrollBar
    11. ShowScrollBar List1.hwnd, SB_VERT, False
    12. End Sub


    Hier der Code, gefunden auf xtremevbtalk.com/showthread.php?t=86766

    Ist aber anscheinend doch VB, aber ich glaube die ganzen angesprochenen Methoden sind veraltet und nicht mehr gültig.
    xD...darauf warte ich noch, dass die WinAPI veraltet ist(und somit das gesamte .Net Framework nicht mehr funktioniert...)...
    das musst du nur etwas übersetzen, da es aus VB 6 zeiten ist...
    As Long->As Integer(bzw. an manchen stellen, wenn es ein Handle ist As IntPtr)
    hwnd -> Handle

    anschließend nur noch die wichtigen Stellen abkopieren und die Variablen ohne Typ dekleration auf Integer setzen...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---