我想让程序在继续之前等待按下按钮,我尝试创建一个 while 循环并让它循环直到单击按钮并将 bool 设置为 true 以结束 while 循环,这使得它崩溃了
while (!Redpress)
{
// I'd like the wait here
}
Redpress = false;
while 是否存在并不重要,只要程序在将“Redpress”设置为 false 之前等待按钮按下...有什么想法吗?
最佳答案
使用事件 - 这是它们的设计目的。
您不需要在调用您的代码的 Button_Click
事件处理程序中为此使用 boolean 变量:
private void Button_Click(object sender, EventArgs e)
{
// The code you need to execute when the button is pressed
}
正如@trickdev 指出的那样,您需要订阅此事件,但如果您使用 Visual Studio 中的“事件”窗口,它将为您添加必要的代码 - 包括空处理程序。
对于事件驱动程序,您总是在等待下一个“事件”发生。所以在你的情况下(如果我已经正确理解你的应用程序)当你启动程序时它应该简单地告诉第一个按钮闪烁“N”次。如果您将其写为事件,那么应用程序将在代码完成后返回等待状态。
然后在按钮单击事件处理程序中 - 您可以将所有按钮订阅到同一事件 - 您可以检查是否按下了正确的按钮,然后让下一个按钮闪烁。如果按下了错误的按钮,则显示一条合适的消息。
所以在伪代码中你有:
public class Form
{
Initialise()
{
this.Loaded += FormLoaded;
}
private void FormLoaded(object sender, EventArgs e)
{
// pick a button
pickedButton.Flash();
}
private void Button_Click(object sender, EventArgs e)
{
if (sender == pickedButton)
{
pickedButton = pickButton();
}
else
{
message = "Sorry wrong button, try again";
}
pickedButton.Flash();
}
}
public class Button
{
public void Flash()
{
// loop N times turning button on/off
}
}
关于C# 让程序等待按钮被按下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5628274/