3

マウスを上に置いたときに、 VirtualStringTreeのセルを別の方法でペイントしようとしています。ホットノードの座標を検出するにはどうすればよいですか?HotNodeプロパティがあることは知っていますが、マウスカーソルの下にあるノードのみを返します。そのノードのセル座標(X、Y)を取得する必要があります。

4

1 に答える 1

4

このメソッドを使用して、任意のノードの座標を取得できますGetDisplayRect。また、InvalidateNode無効にしたノードの座標を教えてくれます。

ただし、あなたの目的のために、任意のノードの座標を知る必要はないと思います。代わりに、ノードをペイントするときに、ペイントしているノードがホットノードであるかどうかを知る必要があります。すべてのノード固有の所有者描画イベントは、現在のノードと座標の両方を通知します。ただし、OnPaintTextはノードのみを通知します。ただし、現在のホットノードを自分で追跡する必要はありません。Node = Sender.HotNodeノードとそのテキストのペイントに使用するスタイルを決定するかどうかを確認するだけです。

ただし、問題全体を回避できる可能性があります。コントロールにはすでにかなりの量のホットノード固有のコードが含まれているため、すべてを自分でペイントするのではなく、構成するプロパティを見つけるだけの問題かもしれません。

于 2009-11-17T21:16:24.870 に答える