ListViewの謎の動作

ListViewは色々使えて便利なんですが、代わりにバグも満載です。
例えば

・オーナードロー時、HideSelection が False の状態でアイテムにマウスを重ねると e.State の Selected が反転したり、
 謎の値になる。→ e.State で選択状態を判定できない
 解決策)e.Item.Selected の値を見る
・View を Tile にしたとき、TileSize の値と e.Bounds の値が異なる。仕様ですか?
 解決策)?
・Tile なときにアイテムを選択すると、e.Bounds の Width と Height が 1 小さくなる。
 そのせいで、枠を描画したいときには選択時と非選択時で描画サイズを変える必要がある
 解決策)?

まぁこのうち下 2 つは仕様かもしれません(MSDN をよく読んでません)。
MSぅ、速く直しておくれ。


なんでこんなこと書いたかって、そりゃ 1,3 番目のバグにひっかかったからに決まってるじゃないですかwww orz