我有一个显示堆栈跟踪的 .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 上调整来解决这个限制的吗?