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;