ListView の列のサイズをプログラムで自動変更するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/57584

質問

Win32 API を使用したり、^+ ボタンの組み合わせをシミュレートしたりする例をいくつか見つけました (Ctrl-+) SendKey の使用, 、しかし、少なくとも SendKeys メソッドを使用すると、キーボードのスタート ボタンを押すまで、リストビューがカーソルを取得し、砂時計に設定します。これを行う最もクリーンな方法は何ですか?

役に立ちましたか?

解決

への電話のようです myListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent) あなたが望むことをします。項目を追加した後に呼び出すだけだと思います。

より詳しい情報 ここ

他のヒント

によると MSDN, 、列の幅を -1 に設定すると、最も幅の広い項目に合わせて自動サイズ調整されます。

すべての列をループし、コンテンツを追加した後に幅を -1 に設定します。

次のルーチンをコードに追加した後、任意のプロシージャ/関数から呼び出します。ただし、「Form_Load」プロシージャでは使用しないでください。ListView に項目を追加した後でのみ呼び出してください (または、複数の追加を行っている場合は、すべての追加の最後に 1 回呼び出してください)。

    Private Sub AutoSizeListViewColumns(oListView As ListView)
        Dim nCol As Integer = 0
        SuspendLayout()
        For nCol = 0 To (oListView.Columns.Count - 1)
            oListView.Columns(nCol).Width = -1  'forces autosizing on column
        Next
        oListView.Refresh()
        ResumeLayout()
    End Sub
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top