.NET ListView, максимальное количество символов или максимальная ширина столбца? Можно переопределить / развернуть?

У меня есть. 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();
    }
}

Снимок экрана:

screenshot of listview problem

Как вы можете видеть, строка, содержащая 258 W + X, показывает x, тогда как следующая строка, содержащая один дополнительный W, не показывает x.

Результат вычисления ширины показывает, что текущая ширина столбца составляет 2864 пикселя.

Вопрос заключается в следующем: Могу ли я что-нибудь изменить в ListView, чтобы обойти это ограничение?

5
задан Lasse V. Karlsen 5 April 2011 в 23:25
поделиться