C# WinForms TreeView如何移除水平滚动条

7
我需要一个只有垂直滚动条的TreeView。
我尝试了这个方法,但是它不起作用,结果的滚动条根本没有任何作用。
我尝试了相反的方法(将scrollable设置为true,并使用user32.dll函数禁用水平滚动条)-- 它不起作用,当我向TreeView添加足够长的内容时,滚动条再次显示...
2个回答

13

您可以尝试在树形视图控件上打开TVS_NOHSCROLL窗口样式。为此,您需要使用自定义的TreeView扩展标准的TreeView控件,如下所示:

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

1
这是一个即插即用的类,它具有可以在设计器中设置的“HorizontalScrollBar”属性:https://pastebin.com/dnbGfiqp - Codecat
它可以正常工作,但是当节点文本超出控件时,我需要水平滚动。https://ibb.co/ibnCic - Vignesh Nethaji

2
如果您的目的是使视觉效果与Windows Vista和7本地树形视图相似,那么您应该按照以下步骤进行操作:如何获取.NET TreeView的Windows本地外观?。必须使用SetWindowTheme,这样水平滚动条就不会出现。它适用于Windows Vista和Windows 7。

1
不,我只是想要我所要求的,但仍然感谢您提供有价值的信息!;) - Istrebitel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接