2011-12-16 22 views
0

パネル内のマウスクリックの座標を取得するにはどうすればよいですか? たとえば、マウスをクリックしてどこにでもピクセルを置くことができるようにしたいと考えています。私は描画部分を扱うことができますが、私はそのクリックイベントを聞くように自分のプログラムを作る方法と、正しい場所に描画できるようにx/y座標を得る方法を知らない。Panel内のクリックイベントの座標を取得する方法は?

私は決して類似したコードを見たことがなく、グーグルと関連性のある情報を見つけることができなかったので、単にコードを表示することはできません。手掛かりをどのように開始する。私はおそらく間違ったキーワードを検索していますが、それができると確信しています。

編集:すべての

答えて

2

Hereはコードで、あなたの質問のための完全なヒントです、ありがとうございました。パネルではmouseDownイベントを使用できます。そしてイベントの議論から、あなたはcoordsを得ることができます。

1
private: System::Void panel1_MouseDown(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) 
{  
    int x= e->X; 
    int y= e->y; 
} 
4

Clickイベントは適切な選択肢ではありません。これは、マウスとキーボードの両方によって生成されるので、マウスの位置を通過しません。スペースバーを押すことで、例えばボタンをクリックすることができます。もちろんこれはパネルでは起こりません。単にMouseUpイベントを代わりに使用してください。渡されたe-> Buttonプロパティを確認してください。

パネルはどちらでも良い選択肢ではありません。ダブルバッファリングされていないので、描画が複雑になるとちらつきが始まる可能性があります。サイズが変更されたときに正しく再描画されません。 PictureBoxにはこれらの問題はありません。それをパネルのように扱い、Paintイベントを実装し、Imageプロパティを設定しないでください。

関連する問題