【问题标题】:Making ListView scrollable in vertical direction使 ListView 在垂直方向上可滚动
【发布时间】:2011-01-19 12:35:42
【问题描述】:

我正在使用System.Windows.Forms.ListViewcheckboxes = true。 我可以看到,当列表项超出容量时,我会得到一个水平滚动条。我试图找到任何属性来更改滚动条方向。 有什么办法可以让它在垂直方向上滚动?

【问题讨论】:

    标签: c# winforms listview scrollable


    【解决方案1】:

    你需要设置

    Listview1.Scrollable = true;
    Listview1.View = View.Details
    

    只有在您的 Listview1 中添加了一些列时,这才能正常工作, 所以添加一个虚拟列。喜欢,

    ColumnHeader header = new ColumnHeader();
    header.Text = "";
    header.Name = "col1";
    listView1.Columns.Add(header);
    

    【讨论】:

    • 来自建议的编辑(不是我):将 HeaderStyle 设置为 None 以隐藏它!现在你有了一个类似于 Title-View 的 ListView
    • 你应该添加 Listview1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize) 以获得正确的外观
    • 谢谢!这个答案和上面的 2 个 cmets 为我节省了几个小时的反复试验,使 ListView 看起来像一个简单的垂直可滚动 ListBox。
    【解决方案2】:

    我认为强制 ListView 垂直滚动并以“标题”模式查看项目的唯一方法是:

    ListView.View = View.Details;
    ListView.HeaderStyle = ColumnHeaderStyle.None;
    

    并添加 JUST ONE

    【讨论】:

      【解决方案3】:

      如果集合中有足够的项目(即当前列表视图不能显示的项目),ListView 还应该自动显示垂直滚动条。

      【讨论】:

        【解决方案4】:

        尝试设置此属性

         View=Details
        

        参考:

        【讨论】:

        • 我已经尝试过所有这些组合。它没有帮助。除了这是配置列表项的视图而不是滚动条方向:(
        【解决方案5】:

        您无法自行更改滚动条方向。

        如果您的项目超出列表视图的底部,您将获得一个垂直滚动条,如果您的项目超出列表视图的右侧,您将获得一个水平滚动条。

        所以如果你想控制滚动条,你实际上是通过控制内容来做到这一点的。就我个人而言,我只在 Detail 模式下使用 ListViews,但以此为例,您需要确保列标题的大小适合它们都适合水平空间。

        【讨论】:

          【解决方案6】:

          你需要

          listView1.View = System.Windows.Forms.View.SmallIcon;

          然后您的控件将具有垂直滚动条,其行为与 View.List 几乎相同

          【讨论】:

            猜你喜欢
            • 2016-02-18
            • 2020-02-14
            • 1970-01-01
            • 1970-01-01
            • 2020-09-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多