2010-12-16 33 views
2

私はリストビューをTileviewに設定しました。 ListViewの幅は300で、タイルの幅も同じです。C#ListViewタイル幅100%?

これは、タイルの数がオーバーフローしてスクロールバーが発生しない場合に有効です。

ただし、オーバーフローすると、垂直スクロールバーが表示されると、垂直スクロールバーがタイルのリストビュー幅を下げるため、水平スクロールバーも表示されます。リストビューを埋めるためにタイルを自動サイズ調整する方法はありますか?

は、例えば画像を参照してください:

現在、何が起こる: alt text

私は起こるしたいもの: alt text

私は100%に幅が、そのdoesntの仕事を設定してみました。何か案は?

+0

この「WPF」または「Windowsフォーム」ですか? – decyclone

+0

アプリケーションはWindowsフォームです – Ozzy

答えて

3

スクロールバーが表示されたことを直接検出する方法はありません。間接的な方法とはいえ、ClientSizeChangedイベントのイベントハンドラを記述します。

private void listView1_ClientSizeChanged(object sender, EventArgs e) { 
     listView1.TileSize = new Size(listView1.ClientSize.Width, listView1.TileSize.Height); 
    } 

また、あなたのタイルサイズは依然として適切であることを確認するためにあなたのマシン上でDPI設定を変更します。これは、通常、コントロールのサイズを変更します。 ClientSize.Widthはあなたの友人です。