이벤트를 사용하십시오 - 그것이 무엇을 위해 설계되었습니다.
당신은 당신의 코드를 호출 Button_Click
이벤트 처리기에서 이것에 대한 부울 변수를 사용할 필요가 없습니다 : @trickdev 당신이 사용하는 경우이 이벤트에 가입 할 필요 하겠지만 지적 하듯이
private void Button_Click(object sender, EventArgs e)
{
// The code you need to execute when the button is pressed
}
Visual Studio의 이벤트 창에서 빈 처리기를 포함하여 필요한 코드를 추가합니다.
이벤트 구동 프로그램을 사용하면 다음 "일"이 발생할 때까지 항상 기다리고 있습니다. 따라서 귀하의 경우 (귀하의 응용 프로그램을 올바르게 이해했다면) 프로그램을 시작할 때 첫 번째 버튼에 "N"번만 알려야합니다. 이벤트로 작성하면 코드가 완료되면 응용 프로그램은 대기 상태로 돌아갑니다.
그런 다음 버튼 클릭 이벤트 핸들러에서 모든 버튼을 동일한 이벤트에 등록 할 수 있습니다. 올바른 버튼이 눌러 졌는지 확인하고 다음 버튼이 깜박이도록 할 수 있습니다. 잘못된 버튼을 누르면 적합한 메시지가 표시됩니다.
그래서 의사 코드에서, 당신은 : 당신은 당신이 원하는 어떤 논리를 넣을 수 있습니다
myButton.Click += myButton_EventHandler;
:
이
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
}
}
버튼 이벤트가 이미 있습니다. 이벤트를 기다리는 프로그램이 필요합니다. – Zizo47
사용자 인터페이스 스레드에서 이와 같은 코드를 작성할 수 없습니다. UI가 고정됩니다. UI 프로그래밍의 이벤트 중심 특성을 이해하는 것이 중요합니다. –