2012-04-07 135 views
5

我需要一个只有垂直滚动条的TreeView。C#WinForms TreeView删除水平滚动条

我试过this但它不起作用,所产生的滚动条根本没有做任何事情。

我尝试相反(与user32.dll中的功能滚动到真实和禁用水平滚动条) - 它不工作,当我足够长的东西添加到TreeView滚动条再次显示...

回答

10

你可以尝试在树视图控件上打开TVS_NOHSCROLL窗口样式。要做到这一点,你必须使用自定义的TreeView像这样的扩展标准TreeView控件:

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

谢谢!这是它 – Istrebitel 2012-04-07 09:38:28

+1

这是一个准备好要去的类,它有一个“Horizo​​ntalScrollbar”属性,可以在设计器中设置:https://pastebin.com/dnbGfiqp – Codecat 2014-06-16 13:14:05

1

如果你的目的是获得的外观和感觉像Windows Vista和Windows 7原生树视图,那么你就应该按照这个,

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

SetWindowTheme是必要的。然后水平滚动条不会出现。

它适用于Windows Vista和Windows 7.

+0

不,我只是想要我所要求的,但仍然感谢有价值的信息! ;) – Istrebitel 2012-04-07 09:39:09