2011-07-15 12 views

答えて

10

int itemHeight = yourListView.GetItemRect(itemIndex).Height; 
0

私は100%を確認していないが、これは役立つかもしれない:

int itemHeight = listView.Items[itemIndex].GetBounds(ItemBoundsPortion.Entire).Height; 
1

を私は同じ質問がしかし1つの問題がある持っていた - リストビューまで値が設定されていない場合は描画されます。また、アイテムを追加する前にサイズを設定できるようにすることもできます(たとえば、5つのエントリを表示できるが、空で始まるリストビューを削除したい場合など)。

したがって、私の回避策は、アプリケーションの初期化セクションにコントロールを表示させずに、コントロールを強制的に表示する次のコードを実行し、後で使用するためにグローバル変数として値を保存することでした。

Dim lvwTemp As New ListView 
lvwTemp.View = View.Details 
lvwTemp.Columns.Add("test") 
lvwTemp.Items.Add("test") 
Dim zTempBitmap As New Bitmap(100, 100) 
lvwTemp.DrawToBitmap(zTempBitmap, New Rectangle(0, 0, 100, 100)) 
zTempBitmap.Dispose() 
gintListviewHeaderHeightMinusFontSize = lvwTemp.Items(0).GetBounds(ItemBoundsPortion.Entire).Top - lvwTemp.Font.Height 
gintListviewItemHeightMinusFontSize = lvwTemp.Items(0).GetBounds(ItemBoundsPortion.Entire).Height - lvwTemp.Font.Height 
+0

これは、列見出しの高さと項目の高さを非常に簡単に得ることができます - いいね! –

関連する問題