-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 回答