有没有办法更改c#中点击事件的“点击框”,这是由点击按钮或其他控件引起的?
我正在使用自定义GUI控件来控制设备。这些控件用作小圆圈,既指示当前状态(绿色或黑色),也指示用户可以单击的按钮。
问题是,我在设备上使用触摸屏,点击小圆圈并不容易。错过50%的时间并且不会引发控件点击事件。
我想在不改变圆圈的视觉尺寸的情况下更改它,因为我的GUI已经限制在空间上。所以我想要一个看不见的可点击的点击框,它比控件本身略大一些。有可能吗?
答案 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
。
将BorderColor
,MouseDownBackColor
和MouseOverBackColor
设置为BackColor
。
右键单击button2并发送回。