プロが教えるわが家の防犯対策術!

[開発言語] C#
[開発環境] Visual Studio 2005

C#のListViewに関して質問です。
ViewプロパティにListを指定した場合のItemの幅はどのように設定するのでしょうか?

理想としては、エクスプローラのように
ItemのTextの長さに応じて最適な幅に調節したいのです。

よろしくお願いいたします。

A 回答 (2件)

Widthに値(120とか)を設定してしまうと、それ以降ヘッダの自動計算は行われないみたいですね。


最初にアイテムを追加する前にWidthを-1に設定すると、とりあえず動いているようですが・・・あまりいいやり方ではないですね。

ふと思ったのですが、ViewでDetailを使用したくない理由はなんでしょうか?ヘッダを表示したくないだけならば、HeaderStyleをColumnHeaderStyle.Noneにすれば実現できる上にColumnHeaderやWidth = -1なども問題なく使用できると思いますが・・・
    • good
    • 0

日にちが経ってるので、もう見てないかもしれませんが・・・


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;
とか。
    • good
    • 0
この回答へのお礼

なるほど。幅の直接指定はこれでクリアできました。
ありがとうございます。

ただ、Details時と同じ要領で

listView1.Columns[0].Width = -1;

としても、幅の自動調節はされませんでした。
List時には、中身に応じて幅を自動調節することは不可能なのでしょうか?

お礼日時:2010/01/05 00:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています