我是c#Windows窗体应用程序开发的新手。
我创建了一个带有面板的表单,用户可以在其中绘制图像。如何检查图像是否被点击?
答案 0 :(得分:3)
在设计器模式下,右键单击面板,转到“属性”。 在“属性”窗口中,选择“事件”(Lightning图标)。 双击Click,然后将生成以下代码:
private void panel1_Click(object sender, EventArgs e)
{
//--what to do when user clicks on panel--
MessageBox.Show("Clicked");
}
答案 1 :(得分: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
}
}