-1

私はc#Windowsフォームアプリケーション開発に不慣れです。

ユーザーが画像を描くことができるパネルを備えたフォームを作成しました。画像がクリックされているかどうかを確認するにはどうすればよいですか?

4

2 に答える 2

3

デザイナー モードで、パネルを右クリックし、[プロパティ] に移動します。[プロパティ] ウィンドウで、[イベント] (稲妻アイコン) を選択します。Click をダブルクリックすると、次のコードが生成されます。

private void panel1_Click(object sender, EventArgs e)
    {
        //--what to do when user clicks on panel--
        MessageBox.Show("Clicked");
    }
于 2013-02-15T09:52:05.553 に答える
2

フォームの画像パネル (またはクリック イベントを検出したいオブジェクト) をダブルクリックするだけで、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
    }
}
于 2013-02-15T09:44:31.377 に答える