我想在btn1.Click上提供以下内容:
if (btn1.Enabled == false) System.Media.SystemSounds.Beep.Play();
虽然btn1被禁用,有没有办法发出哔哔声?
事实上,默认情况下我需要这样的东西:
foreach (controls c in Form1.Controls)
if (c is clicked && c.Enabled == false)
System.Media.SystemSounds.Beep.Play();
答案 0 :(得分:5)
您可以向表单添加点击事件,并获取位于点击位置的控件:
private void Form1_Click(object sender, EventArgs e)
{
var p = PointToClient(Cursor.Position);
var c = GetChildAtPoint(p);
if (c != null && c.Enabled == false)
System.Media.SystemSounds.Beep.Play();
}
答案 1 :(得分:1)
如果禁用了按钮,则不会接收Click事件。所以唯一的方法是启用它并使用自定义标志来存储状态。
答案 2 :(得分:1)
你不能在表单的OnMouseClick事件中执行此操作(接收MouseEventArgs e):
Control control = GetChildAtPoint(e.Location);
if (control != null)
{
}
由此,您可以执行一些脏操作来检索控件类型及其状态,并在必要时发出蜂鸣声。无论如何,我讨厌使用应用程序一直发出哔哔声; - )
答案 3 :(得分:1)
如果要手动禁用控件,而不是禁用按钮,只需将按钮的样式更改为禁用即可。点击事件检查按钮的样式。如果你能解释为什么你想要这个功能,我们可以提供更多帮助