我是 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
}
}