【问题标题】:winforms listview - make first column always visible?winforms listview - 使第一列始终可见?
【发布时间】:2011-04-21 08:22:52
【问题描述】:

我有一个应用程序(winforms,c#),它以非常常见的方式在 Listview 中显示数据 - 第一行是标题,每行中的第一列是标题,以下子项是数据本身。

我希望第一列(标题列)始终可见,水平滚动只影响其他列。

我认为在 winforms listview 中是不可能的(我错了吗?)。因此,我正在考虑将列表视图拆分为两个列表视图 - 一个用于标题,第二个用于数据。在这种情况下,我需要连接垂直滚动条 - 我发现这项任务比我预期的要难。

我是不是走错了路(例如,使用不同的控件会更容易)吗? 如果没有,关于如何实现它的任何指示?

注意:Winforms Listview 的 API 很差(例如,没有滚动事件)并且被称为错误,所以我正在寻找一个工作示例而不是 MSDN 链接......

谢谢

【问题讨论】:

    标签: c# winforms listview


    【解决方案1】:

    如前所述,DataGridView 支持这种行为,但没有人告诉如何做到这一点:

    要启用此功能,只需设置列的Frozen 属性。更多信息也可以在这个How to: Freeze Columns in the Windows Forms DataGridView Control找到。

    【讨论】:

    • 是的,但只有几分钟(收到相同的错误消息)。但现在它又像魅力一样起作用了。 (很奇怪)。为了以后更容易,我用文章的全名替换了文本。所以如果链接又死了,你可以更好地搜索它。
    • @Hertzel - 您提议的编辑基本上是@Oliver 已经包含的链接的副本。我已经修复了第二个链接,现在应该可以正常工作了。
    • @Hertzel 和@slugster:回滚到我的上一个版本,因为链接和我的一样,除了链接到 VS8.5。如果括号中没有这个参数,它总是会跳转到我喜欢的这篇文章的最新版本。
    【解决方案2】:

    我认为您必须尝试使用​​ DatagridView 而不是列表框。据我所知,DataGridView 支持这一点。

    【讨论】:

      【解决方案3】:

      您是否尝试改用DataGridView

      编辑:

      如果您在设置行标题文本时遇到问题,请查看post(基本上,您在将项目添加到网格时设置行标题文本)。

      【讨论】:

        猜你喜欢
        • 2011-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多