C# 控件单击事件命中框

C# 控件单击事件命中框,c#,winforms,events,click,C#,Winforms,Events,Click,有没有办法改变c#中点击事件的“点击框”,这是由点击按钮或其他控件引起的 我使用自定义GUI控件来控制设备。这些控件作为小圆圈工作,既指示当前状态(绿色或黑色),也作为用户可以单击的按钮 问题是,我在设备上使用触摸屏,点击小圆圈并不容易。50%的时间您错过了它,并且控件单击事件未引发 我想在不改变圆圈的视觉大小的情况下改变它,因为我的GUI空间已经有限。所以我想要一个不可见的、可点击的点击框,它只比控件本身稍大一点。有可能吗?创建一个更大的按钮,并执行下面的代码,其中button1是原始按钮,b

有没有办法改变c#中点击事件的“点击框”,这是由点击按钮或其他控件引起的

我使用自定义GUI控件来控制设备。这些控件作为小圆圈工作,既指示当前状态(绿色或黑色),也作为用户可以单击的按钮

问题是,我在设备上使用触摸屏,点击小圆圈并不容易。50%的时间您错过了它,并且控件单击事件未引发


我想在不改变圆圈的视觉大小的情况下改变它,因为我的GUI空间已经有限。所以我想要一个不可见的、可点击的点击框,它只比控件本身稍大一点。有可能吗?

创建一个更大的按钮,并执行下面的代码,其中button1是原始按钮,button2是更大的按钮

  private void button1_Click(object sender, EventArgs e)
    {
        ShowMessage();
    }

    private void button2_Click(object sender, EventArgs e)
    {
        ShowMessage();
    }

    private void ShowMessage()
    {
        MessageBox.Show("ok", "ok");
    }
将按钮2的文本设置为空白

FlatStyle
设置为
flat

BorderColor
MouseDownBackColor
MouseOverBackColor
设置为
BackColor


右键单击按钮2并发送回。

在设计
用户控件时使用
面板
,然后将可单击的项目放置在面板内,默认情况下
面板
将是透明的。您不必为其设置任何其他设置,如果用户单击面板fire
control1\u,请单击事件

private void control1_Click(object sender, EventArgs e)
{
    MessageBox.Show("Test");
}

private void panel1_Click(object sender, EventArgs e)
{
    control1_Click(sender, e);
}
谢谢所有的提示! 我最终所做的与Abdul和Active92的答案相似

我为每个按钮创建了一个picturebox,使其比按钮本身大,并将其放置在按钮的“后面”。(右键单击并发送回)。因为我没有添加任何图像,所以图片框是不可见的


在每个picturebox click事件处理程序中,我只触发原始控件的click事件。

您可以通过多种方式解决问题,例如:♦ 您可以使用,将
FlatStyle
设置为
Flat
并使用相同的
BackColor
,将
FlatAppearance.MouseDownBackColor
FlatAppearance.MouseOverBackColor
设置为合适的颜色,并为按钮使用所需的图像。♦ 您可以将按钮的区域设置为圆形区域,并将圆画得更小一些。♦ 或者可能是你想用一个。