スタックトレースを表示する.NETListViewコントロールがあります。特定の行のフォント/色を操作する必要があるため、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 + a Xを含む行はxを示していますが、1つの追加のWを含む次の行はxを示していません。
そこでの幅計算の出力は、列の現在の幅が2864ピクセルであることを示しています。
質問はこれです:この制限を回避するためにListViewで微調整できるものはありますか?