0

DevExpressグリッドコントロール(C#/。NET WinForms)を使用しており、ダブルクリックイベントを処理しています。

デフォルトでは、グリッドヘッダーとデータ行をダブルクリックすると、グリッドがイベントを発生させます。

ダブルクリックハンドラーはEventArgsのみを渡すため、ユーザーがグリッド内でクリックしていた場所のヒット情報を計算するために使用するマウス位置情報はありません。

これを回避するために、Control.MousePosition値をクエリし、グリッド座標に変換してから、ヒット情報を計算しています。

これはすべて正常に機能しているように見えますが、イベントハンドラー中にこのようにMousePositionをクエリすることに危険はありますか?

イベントハンドラー内のサンプルコード

        // if the double click was fired outside a row then ignore it
        GridHitInfo gridHitInfo = GridView.CalcHitInfo(Grid.PointToClient(MousePosition));
        if (!gridHitInfo.InRow)
            return;
4

1 に答える 1

2

はい、これは正常に機能します。同期的に発生する更新MousePosition(つまり、ハンドラーの呼び出し中に変更されない)。

于 2011-05-12T10:32:26.250 に答える