控制点击事件点击框

时间:2016-11-24 09:45:06

标签: c# winforms events click

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

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

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

我想在不改变圆圈的视觉尺寸的情况下更改它,因为我的GUI已经限制在空间上。所以我想要一个看不见的可点击的点击框,它比控件本身略大一些。有可能吗?

3 个答案:

答案 0 :(得分:1)

在设计Panel时使用UserControl,然后在面板中放置可点击项,默认情况下Panel将是透明的。您不必为其设置任何其他设置,并且如果用户点击了面板触发control1_Click事件。

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

private void panel1_Click(object sender, EventArgs e)
{
    control1_Click(sender, e);
}

答案 1 :(得分:1)

感谢所有提示! 我最终做的与Abdul和Active92的答案类似。

我为每个按钮创建了一个图片框,使它比按钮本身更大,然后将它放在"后面"按钮。 (右键单击并发送回)。由于我不添加任何图像,因此图片框是不可见的。

在每个图片框中单击事件处理程序,我只需触发原始控件的单击事件。

答案 2 :(得分:0)

创建一个更大的按钮并执行类似下面的代码,其中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");
    }

将button2的文本设置为空白。

FlatStyle设为flat

BorderColorMouseDownBackColorMouseOverBackColor设置为BackColor

右键单击button2并发送回。