gpt4 book ai didi

c# - Windows 窗体中的 Button_click

转载 作者:太空宇宙 更新时间:2023-11-03 20:09:40 27 4
gpt4 key购买 nike

我在下面有这个 button5 函数。我想要的是,当用户在单击 button5 后想要单击 button1 时,button5 中的 while 循环应该中断,因为选择现在是 1。Choice 是一个在开始时设置为零的全局变量。当 button5 函数运行时,button1 函数不会在点击时被调用。如何解决这个问题?

   This is the Answer Thanks Everyone For the Help!!

private Thread demoThread = null;
delegate void SetTextCallback(string text);

private void button1_Click(object sender, EventArgs e)
{
choice = 1;

System.Console.WriteLine(choice);
}
private void button5_Click(object sender, EventArgs e)
{
//button1.Enabled = false;
button5.Visible = false;
panel2.Visible = true;
panel1.Visible = true;
panel3.Visible = true;
label2.Visible = true;
button1.Visible = true;
button2.Visible = true;
button3.Visible = true;
button4.Visible = true;

this.demoThread = new Thread(new ThreadStart(this.StartForLoop));

this.demoThread.Start();



}
private void StartForLoop()
{
while (choice != 1 || choice != 2 || choice != 3)
{


if (choice == 1 )
{
choice = 1;
break;
}

if (choice == 2)
{
choice = 2;
break;
}

if (choice == 3)
{
choice = 3;
break;
}
Application.DoEvents();

}
System.Console.WriteLine("AAA");
if (choice == 3)//why
{
}
if (choice == 1)//true
{
System.Console.WriteLine("label");

this.SetText("Does the animal lay eggs?");
}
if (choice == 2)//false
{
}

}

最佳答案

这是一个错误的概念。永远不要使用 Application.DoEvents();,这是一种 hack。它不能解决您的任何问题。

您不需要在 Button5_Click 中使用 while 循环。该循环中的所有内容都可以由您的其他点击处理程序中的代码处理。

您的问题可能可以通过 state machine 来解决.这看起来很复杂,但事实并非如此。尽量简单的实现,遇到问题再问。

关于c# - Windows 窗体中的 Button_click,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20872210/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com