ListViewに棒グラフの線をリアルタイムに表示するには?VB.NET版


やすし  2004-12-06 00:35:39  No: 87146  IP: [192.*.*.*]

http://madia.world.coocan.jp/cgi-bin/DelphiBBS/wwwlng.cgi?print+200310/03100086.txt

↑をVB.NETで実現したいと思っています。
将来、指定した位置の項目にグラフをもってこれるようにしたいと思っているので、
リストビューを継承して新しいクラスを作る形をとることにしました。

以下のようなクラスを作りました。

Class CustumListView
    Inherits ListView

    Protected Overrides Sub WndProc(ByRef m As Message)
        If m.Msg = &HF Then '&HF = WM_PAINT
            OnPaint(New PaintEventArgs(Me.CreateGraphics(), Me.Bounds))
        End If
        MyBase.WndProc(m)
    End Sub

    Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
        Dim g As Graphics
        Dim br = New SolidBrush(Color.Blue)
        g = e.Graphics()
        g.FillRectangle(br, Me.GetItemRect(0))
    End Sub
End Class

今は仮に1行目の項目を塗りつぶすことにしてあります。

聞きたいことは
1.columnの幅を変えたときにグラフがちらつくのですがこれを回避する方法はないでしょうか?
2.指定した位置の項目(SubItem?)のRectangle(もしくは座標)を取得する方法はないでしょうか?

他にもここはこうしたほうが良いという指摘があったどんどんお願いします。

編集 削除