私は2つの列を持つWin Formを持っていて、リストビューのサイズと2番目の列の1/3のサイズの2/3の第1列の幅を使用したかったのです。リストビューを2つの列で塗りつぶし、リストビューの項目がボックスの下に来る場合は、スクロールバーを縮小して展開できるようにしたいと考えました。私はこのコードを思い付いたが、これはスクロールバーがあるときにのみ有効で、それでも列が少し拡大されて、水平スクロールバーが作成され、私は望ましくない。どんな助けもありがとうございます。ListView Column Size
private void AddColumn()
{
listView1.View = View.Details;
listView1.Columns.Add("Item");
listView1.Columns.Add("Date Added");
int itemColumnWidth = listView1.Width - SystemInformation.VerticalScrollBarWidth;
listView1.Columns[0].Width = itemColumnWidth/3 * 2;
listView1.Columns[1].Width = itemColumnWidth/3;
}
画面が別のDPIに設定されていても、この固定方法はうまくいきますか?私。境界線が2ピクセルよりもはるかに大きい場合...より安全な方法は、定数を仮定するのではなく、現在のシステム設定に基づいて境界線を除外する方法を見つけることです。 –
あなたのコメントをありがとう、私はジェームスの答えを与えるだろうと思う –
listView1.Widthを使用する代わりにlistView1.ClientSize.Widthを使用する必要があります。その後、余分な4ピクセルは必要ありません。完全に動作し、計算された幅に1ピクセルを追加すると、水平スクロールバーが追加され、ターゲットに正しく表示されます。 – Anlo