【问题标题】:C# ListView Last Column Too WideC# ListView 最后一列太宽
【发布时间】:2016-04-27 06:41:37
【问题描述】:

当使用“None”或“ColumnContent”作为参数调用列表视图的“AutoResizeColumns(...)”方法时,最后一列不会展开以填充整个面板,但是如果“AutoResizeColumns(...) ' 以 'HeaderSize' 作为参数调用,最后一列展开,如果您的文本居中或右对齐,这看起来很奇怪。

我已经能够通过在末尾添加一个额外的空白列来解决这个问题,以便根据需要进行扩展和收缩,让我想要的最后一列只覆盖标题的宽度,但这似乎有点不合时宜。他们是一种更简洁的方法吗?

谢谢。

Last Column Expanded

Preferred Width

【问题讨论】:

    标签: c# listview width autoresize


    【解决方案1】:

    ColumnHeader 可以设置为在运行时根据列内容或标题进行调整。您可以通过将 width 属性设置为 -2 来做到这一点(自动调整列的宽度)

    ListView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize)

    【讨论】:

    • 是的,我目前正在使用 ListView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize) 但这会扩展最后一列以填充可用空间。查看我刚刚添加的图片。我也尝试将宽度设置为 -2,但这似乎扩展了我设置宽度的任何冒号以填充窗口,即使它不是最后一列。
    • 你可以这样做,先设置Listview的宽度说600,然后设置每个标题列的宽度如前所述
    • 对不起,我不太明白。你是说如果我要设置 ListView 本身的宽度,最后一列将停止扩展以填充空间?这似乎不太可能,但我会试一试。
    • 将宽度设置为列表视图,然后设置列标题以适合您的列表视图
    • 我想我们可能在描述不同的事情。这只是我要防止扩展的最后一列的宽度。 ListView 本身的大小很好。我只希望它们是最后一列右侧的空白区域,而不是扩展最后一列以填充整个 ListView。我无法预先确定列的宽度,甚至无法预先确定有多少列,我只希望最后一列的宽度与它需要的一样宽(就像所有其他列一样)而不是自动展开以填充 ListView 的其余部分。
    【解决方案2】:

    我发现的一个解决方案是暂时减小 ListView 的大小,调用 'AutoResizeColumns(...)' 然后重置 List View 的大小

    如: int listViewWidth = listView1.Width; listView1.Width = 0; listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); listView1.Width = listViewWidth;

    这看起来有点老套,但至少它不会添加多余的列。

    【讨论】:

    • 我有同样的问题,但不幸的是这对我不起作用
    【解决方案3】:

    我有同样的问题。这似乎发生在具有最后一个 DisplayIndex 的列上。因此您可以在调整大小之前添加一个虚拟列,然后将其删除:

            var dummy = new ColumnHeader();
    
            // dummy gets the last DisplayIndex
            listView1.Columns.Add(dummy);
            // dummy gets the remaining space instead
            listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
            listView1.Columns.Remove(dummy);
    

    或者,您可以更改最后一列的 DisplayIndex,然后在最后一列上调用 AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize),然后恢复它的 DisplayIndex

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-08
      • 2010-11-18
      • 2012-07-21
      • 2018-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-16
      相关资源
      最近更新 更多