2016-11-24 192 views
2

有没有办法通过点击按钮或其他控件来改变c#中点击事件的“点击框”?控件点击事件点击框

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

问题是,我在设备上使用触摸屏,点击小圆圈并不容易。 50%的时间你错过了它,并没有提出控件点击事件。

我想在不更改圆圈的可视大小的情况下更改此设置,因为我的GUI在空间上已经受到限制。所以我想要一个看不见的控制本身的可点击的点击框。可能吗?

+0

您可以通过多种方式解决问题,例如:**♦**您可以使用[Flat button](http://stackoverflow.com/a/32966147/3110834),将'FlatStyle'设置为'Flat'并使用相同的'BackColor',将'FlatAppearance.MouseDownBackColor'和'FlatAppearance.MouseOverBackColor'设置为合适的颜色并使用所需的按钮图像。 **♦**您可以将按钮的区域设置为圆形区域并绘制稍小的圆形。 **♦**或者您可能想要使用[圆形单选按钮列表](http://stackoverflow.com/a/38390028/3110834)。 –

回答

0

感谢您的提示! 我最终做的事情与Abdul和Active92的答案类似。

我为每个按钮创建了一个图片框,它比按钮本身更大,并将其放在按钮“后面”。 (右键点击并发回)。由于我不添加任何图像的pictureboxes是不可见的。

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

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的文本设置为空白。

设置FlatStyleflat

Set BorderColor,MouseDownBackColor and MouseOverBackColor to BackColor

右键单击按钮2并发回。

1

在设计UserControl时使用Panel,然后在面板内放置可点击的项目,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); 
}