私はc#Windowsフォームアプリケーション開発に不慣れです。
ユーザーが画像を描くことができるパネルを備えたフォームを作成しました。画像がクリックされているかどうかを確認するにはどうすればよいですか?
デザイナー モードで、パネルを右クリックし、[プロパティ] に移動します。[プロパティ] ウィンドウで、[イベント] (稲妻アイコン) を選択します。Click をダブルクリックすると、次のコードが生成されます。
private void panel1_Click(object sender, EventArgs e)
{
//--what to do when user clicks on panel--
MessageBox.Show("Clicked");
}
フォームの画像パネル (またはクリック イベントを検出したいオブジェクト) をダブルクリックするだけで、Visual Studio が自動的にOnClick()
イベントを生成します。言うまでもなく、コードをテストするときに表示される実際のフォームではなく、フォーム デザイナーについて話しているのです。
または、オブジェクトのプロパティを使用して実装するイベントを設定できます。OnKeyDown()
そうすれば、またはOnFocus()
その他の種類のイベントを実装することもできます。
編集:画像がパネル全体をカバーしていない場合は、マウスの位置が画像の寸法内にあるかどうかを確認する必要があります。(imgOriginX, imgOriginY)
画像が位置に描画され、サイズがあると仮定します(imgWidth, imgHeight)
:
// Fires, when user clicks on panel
private void panel_Click(object sender, EventArgs e)
{
// Cast to MouseEventArgs
MouseEventArgs mouse = (MouseEventArgs)e;
// If mouse is within image
if (mouse.X >= imgOriginX && mouse.Y >= imgOriginY && mouse.X < imgOriginX + imgWidth && mouse.Y < imgOriginY + imgHeight)
{
// do something here
}
}