誰でも私にListViewの水平スクロールバーの高さをCで教えてもらえますか?それは標準の水平スクロールバーと同じですか?もしそうなら、それを返すウィンドウ関数がありますか?基本的に私はOwnerDrawでListViewを使用していて、ColumnHeader領域とHorizontalScrollbar領域を除外したクライアント領域の大きさを正確に知りたいと思っています。ListViewで水平スクロールバーの高さを取得する方法
おかげ
誰でも私にListViewの水平スクロールバーの高さをCで教えてもらえますか?それは標準の水平スクロールバーと同じですか?もしそうなら、それを返すウィンドウ関数がありますか?基本的に私はOwnerDrawでListViewを使用していて、ColumnHeader領域とHorizontalScrollbar領域を除外したクライアント領域の大きさを正確に知りたいと思っています。ListViewで水平スクロールバーの高さを取得する方法
おかげ
Control.ClientRectangleは、スクロールバーと境界を除きます。 SystemInformation.HorizontalScrollBarHeight
とSystemInformation.VerticalScrollBarWidth
が存在しない、いくつかのP /呼び出しが必要とされている.NET CF、オン
listView1.Scrollable = true;
Console.WriteLine(listView1.ClientRectangle);
Console.WriteLine(listView1.Size);
listView1.Scrollable = false;
Console.WriteLine(listView1.ClientRectangle);
Console.WriteLine(listView1.Size);
:
public sealed class Native
{
public static Int32 GetVerticalScrollbarWidth()
{
return GetSystemMetrics(SM_CXVSCROLL);
}
public Int32 GetHorizontalScrollbarHeight()
{
return GetSystemMetrics(SM_CYHSCROLL);
}
[DllImport("coredll.dll", SetLastError = true)]
public static extern Int32 GetSystemMetrics(Int32 index);
public const Int32
SM_CXVSCROLL = 2,
SM_CYHSCROLL = 3;
}
おかげフレドリック! – Jefe
これで、ColumnHeaderの高さも計算する必要があります。DrawColumnHeaderイベントハンドラでBoundsを使用して高さを取得できますが、イベントハンドラが実行される前にこの値が必要です。 – Jefe
okまた、一時アイテムをリストに追加してアイテム[0] .Bounds.Topを取得したくないと追加する必要があります。リストビューが空であるとします。 – Jefe