2008-09-11 32 views
4

私はいくつかの例は、Win32 APIを使用して、または^ +ボタンの組み合わせ(CTRL - +)をシミュレート見つけたusing SendKeysを、しかし少なくともIまでのSendKeysメソッドでリストビューは、カーソルをつかんで砂時計に設定しますキーボードのスタートボタンを押してください。これを行う最もクリーンな方法は何ですか?あなたが-1列幅を設定した場合ListViewの列をプログラムで自動的にサイズ変更するにはどうすればよいですか?

+0

"自動サイズ変更"の意味を具体的に説明できますか?ウィンドウ(およびリストビュー)がサイズを変更したときにそれらをシャッフルしたい、または表示しているデータの長さに基づいてサイズを変更したいと思っていますか? – Andrew

+0

表示されているデータの長さに基づいてサイズを変更します。 – Luke

答えて

17

に自動サイズ調整されますmyListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent)への呼び出しは、あなたがやりたいように見えます。私は、アイテムを追加した後に呼び出すと思います。すべての列とセット幅を通じて

詳細情報here

+1

ColumnHeaderAutoResizeStyle :: ColumnContentにする必要があります – Julien

+0

リンクが無効です。 –

+0

@CareyGregoryありがとう、更新されたリンク –

1

MSDNによると、それは最も幅の広いアイテム

+0

これは私にとってはうまくいかないようです。私は実行時にlistviewitemsを追加しています。列はスキニーにとどまります。 – Luke

+0

奇妙な。おそらくListViewが表示され、アイテムが既に追加されている必要があります。あるいは、Application.DoEventsへの呼び出しがそのトリックを行うかもしれませんか? あなたはいつもP/Invokeを使って自分自身でLVSCW_AUTOSIZEを送信してみることができます:http://vbnet.mvps.org/index.html?code=comctl/lvcolumnautosize.htm(VB6のリンク) – rpetrich

+0

リストビューの更新をBeginUpdate()/ EndUpdate()ブラケット?おそらく、-1トリックは、特に更新を終了し、リストビューの表示方法の再計算をトリガするときに機能します。 – Andrew

0

ループに-1コンテンツを追加した後。

関連する問題