【发布时间】:2011-07-30 09:41:38
【问题描述】:
我有一个显示堆栈跟踪的 .NET ListView 控件。我使用 ListView 因为我需要操作某些行的字体/颜色。
但是,关于列的宽度,无论是显示的字符数,还是一列可以包含的像素数,似乎都有某种最大值。
这里有一个简单的LINQPad 示例来说明问题:
void Main()
{
using (var fm = new Form())
{
ListView lv = new ListView();
fm.Controls.Add(lv);
lv.Dock = DockStyle.Fill;
lv.View = View.Details;
lv.Columns.Add("C", -1, HorizontalAlignment.Left);
string line = new string('W', 258) + "x";
lv.Items.Add(line);
line = new string('W', 259) + "x";
lv.Items.Add(line);
lv.AutoResizeColumn(0, ColumnHeaderAutoResizeStyle.ColumnContent);
lv.Columns[0].Width.Dump();
fm.ShowDialog();
}
}
截图:
如您所见,包含 258 个 W + 一个 X 的行显示了 x,而包含一个额外 W 的下一行不显示 x。
那里的宽度计算的输出显示该列的当前宽度是2864像素。
问题是:我可以在 ListView 上调整什么来解决这个限制吗?
【问题讨论】:
-
请注意,我还需要能够选择单独的行,因此某些 rtf 或 HTML 控件的变体不好。但是,如果另一个控件可以做同样的事情,即基于列表的项目、字体/颜色控制,那么我全都听好了。
标签: .net listview max column-width