2012-04-07 17 views
5

Ho bisogno di avere un TreeView con solo scrollbar verticale.C# WinForms TreeView remove Horizontal Scrollbar

Ho provato this ma non funziona, la barra di scorrimento risultante non fa nulla.

Ho provato il (barra di scorrimento orizzontale scorrevole su true e disattivare con quella funzione user32.dll) opposta - è non lavorare, quando aggiungo roba abbastanza a lungo per la TreeView la barra di scorrimento dimostra ancora una volta ...

risposta

10

Puoi prova ad attivare lo stile di finestra TVS_NOHSCROLL sul controllo TreeView. Per fare ciò è necessario estendere il controllo TreeView standard con un TreeView personalizzato come questo:

public class NoHScrollTree : TreeView { 
protected override CreateParams CreateParams { 
get { 
    CreateParams cp = base.CreateParams; 
    cp.Style |= 0x8000; // TVS_NOHSCROLL 
    return cp; 
} 
} } 
+0

Grazie! Questo è il – Istrebitel

+1

Ecco una classe pronta all'uso che ha una proprietà "HorizontalScrollbar" che può essere impostata nel designer: https://pastebin.com/dnbGfiqp – Codecat

1

Se la vostra intenzione è quella di ottenere l'aspetto grafico come Windows Vista e 7 vista albero nativo, allora si dovrebbe seguire questo ,

How to get Windows native look for the .NET TreeView?

SetWindowTheme è necessario. Quindi la barra di scorrimento orizzontale non verrà visualizzata.

Funziona su Windows Vista e Windows 7.

+0

No, volevo solo ciò che chiedevo, ma ancora grazie per informazioni preziose! ;) – Istrebitel