【问题标题】:C# WinForms TreeView remove Horizontal ScrollbarC# WinForms TreeView 移除水平滚动条
【发布时间】:2012-04-07 07:13:35
【问题描述】:

我需要一个只有垂直滚动条的 TreeView。

我尝试了this 但它不起作用,生成的滚动条根本没有任何作用。

我尝试了相反的方法(可滚动到 true 并使用该 user32.dll 函数禁用水平滚动条) - 它不起作用,当我向 TreeView 添加足够长的内容时,滚动条再次显示...

【问题讨论】:

    标签: c# treeview


    【解决方案1】:

    您可以尝试在 treeview 控件上开启 TVS_NOHSCROLL 窗口样式。为此,您必须使用像这样的自定义 TreeView 扩展标准 TreeView 控件:

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

    【讨论】:

    • 这是一个现成的类,它有一个可以在设计器中设置的“Horizo​​ntalScrollbar”属性:pastebin.com/dnbGfiqp
    • 它工作正常,但是当节点文本超出控件时我需要水平滚动。 ibb.co/ibnCic
    【解决方案2】:

    如果您的目的是获得类似于 Windows Vista 和 7 原生树视图的外观和感觉,那么您应该遵循这个,

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

    SetWindowTheme 是必需的。那么水平滚动条就不会出现了。

    它适用于 Windows Vista 和 Windows 7。

    【讨论】:

    • 不,我只是想要我想要的,但仍然感谢您提供有价值的信息! ;)
    猜你喜欢
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 2010-11-05
    • 1970-01-01
    相关资源
    最近更新 更多