【发布时间】:2018-03-02 03:36:50
【问题描述】:
我有一个简单的 VirtualStringTree (VST) 示例,它有 4 列,在第 2 列或第 3 列中,我可以有更多适合默认列宽的文本。我启用了 hoAutoSpanColumns,因此如果其他列为空,大文本将与其他列重叠。这很好用。问题是当第 2 列或第 3 列中的文本应该跨越 VST 的整个长度时。在这种情况下,大列仅延伸到最后(第 4)列的末尾。
这是第 3 行中的第 2 列如何仅跨越第 3 列和第 4 列,然后在第 4 列的宽度处停止:
如果我使用 AutoFitColumns 来自动调整第二列的大小:
VST1.Header.AutoFitColumns(false, smaUseColumnOption,1,1);
然后它会推动第 3 列和第 4 列,因此它们从第 2 列的末尾开始:
但我需要第 3 列和第 4 列保持相同的位置,如下所示:
有没有办法让第 2 列自动适应文本,但将第 3 列和第 4 列保持在原来的位置?
【问题讨论】:
-
我认为没有内置方法。无论如何,您想调整哪一个?最后一个可调整大小的(第 4 个)?如果我正在开发此功能,我也会这样做,只需调整您请求的列的大小。
-
@Victoria 我知道如何调整最后一个的大小,而且效果很好。问题是非最后一列,就像我的示例第 2 列一样,它跨越第 3 列和第 4 列。我想调整它的大小以查看整个文本,但保留第 3 列和第 4 列。
-
我理解你的问题。我不知道您要如何使该文本完全可见。调整最后一列的大小以使跨区文本完全可见?或者在最后一列之后删除文本剪辑并以某种方式调整内容矩形的大小?还是别的什么?
-
我猜应该调整最后一列的大小,以便完整的第二列可见。这行得通吗?
-
是的,这可行。或者,您可以在标题的末尾添加一些“幽灵”列,该列不可点击(并且无论如何都是可控的),并且只会针对跨区文本调整大小。
标签: delphi autosize virtualtreeview tvirtualstringtree