C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ListViewですべての行が表示される高さを取得


(過去ログ 122 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■73215 / inTopicNo.1)  ListViewですべての行が表示される高さを取得
  
□投稿者/ こういち (5回)-(2014/08/28(Thu) 22:07:10)

分類:[VB.NET/VB2005 以降] 

2014/08/28(Thu) 22:22:29 編集(投稿者)

タイトルどおりですが、ListViewの「Details」表示で、すべての行が表示されるようヘッダー含めた高さを
調節したいと思っているのですが、これは無理ですかね。
いろいろ見てみたら、ImageListを使って行の高さを指定できるらしいのですが、
イメージのwidth分、テキスト部分が右にずれるらしいので、ほかの方法を探しています。

ListViewは、Fontサイズで変動するので、思考錯誤して、

Dim LV_Height as Integer = (ListView1.Font.GetHeight + 4) * (ListView1.Items.Count + 1)

でかなり近似値を得られるのですが、Fontサイズによってズレが生じてしまいます。

引用返信 編集キー/
■73216 / inTopicNo.2)  Re[1]: ListViewですべての行が表示される高さを取得
□投稿者/ shu (614回)-(2014/08/28(Thu) 22:52:00)
No73215 (こういち さん) に返信

Dim rect = ListView1.GetItemRect(ListView1.Items.Count - 1)

ListView1.ClientSize = New Size(ListView1.ClientSize.Width, rect.Top + rect.Height)

これでどうでしょう?
引用返信 編集キー/
■73217 / inTopicNo.3)  Re[2]: ListViewですべての行が表示される高さを取得
□投稿者/ こういち (6回)-(2014/08/28(Thu) 23:40:44)
No73216 (shu さん) に返信


フォントサイズ関係なく、完璧にできました!

っていうかできるんですね。。
もっといろいろ調べたり、勉強します…

ありがとうございました!
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -