• 締切済み

[C#]ListView一覧表示時の幅設定について

[開発言語] C# [開発環境] Visual Studio 2005 C#のListViewに関して質問です。 ViewプロパティにListを指定した場合のItemの幅はどのように設定するのでしょうか? 理想としては、エクスプローラのように ItemのTextの長さに応じて最適な幅に調節したいのです。 よろしくお願いいたします。

みんなの回答

  • reset_cat
  • ベストアンサー率68% (94/138)
回答No.2

Widthに値(120とか)を設定してしまうと、それ以降ヘッダの自動計算は行われないみたいですね。 最初にアイテムを追加する前にWidthを-1に設定すると、とりあえず動いているようですが・・・あまりいいやり方ではないですね。 ふと思ったのですが、ViewでDetailを使用したくない理由はなんでしょうか?ヘッダを表示したくないだけならば、HeaderStyleをColumnHeaderStyle.Noneにすれば実現できる上にColumnHeaderやWidth = -1なども問題なく使用できると思いますが・・・

  • reset_cat
  • ベストアンサー率68% (94/138)
回答No.1

日にちが経ってるので、もう見てないかもしれませんが・・・ ViewプロパティがListの時は、Detailの時のヘッダ項目が無い表示と同じ扱いをできるっぽいので、Detailの時と同じ様に列を追加してやることで幅が操作できるようです。 ColumnHeader column1 = new ColumnHeader(); column1.Name = "column1"; listView1.Columns.Add(column1); としておいて、 listView1.Columns[0].Width = 180; または listView1.Columns["column1"].Width = 180; とか。

chowwwwwww
質問者

お礼

なるほど。幅の直接指定はこれでクリアできました。 ありがとうございます。 ただ、Details時と同じ要領で listView1.Columns[0].Width = -1; としても、幅の自動調節はされませんでした。 List時には、中身に応じて幅を自動調節することは不可能なのでしょうか?

関連するQ&A