在窗体中实现嵌套if循环
本文关键字:if 循环 嵌套 实现 窗体 | 更新日期: 2023-09-27 17:54:52
例如,我在控制台有一个嵌套的if-cycle,如
if (answer == "one")
{
Console.WriteLine("one or two?");
string answer = Console.ReadLine();
if (answer == "one")
{
Console.WriteLine("pressed1");
}
else
Console.WriteLine("pressed2")
//....and so on
}
一切正常。但是,如果我尝试在winform中做同样的事情,事实证明,通过按下Button1 ,我得到所有嵌套的结果标记为"btn1"。所以我得到"pressed 1 pressed 1"。我如何使我的程序停止与console . readline()停止在控制台中相同的方式?
if (btn.Name == "btn1")
{
richTextBox1.AppendText("Pressed1");
if (btn.Name == "btn1")
{
richTextBox1.AppendText("pressed1");
}
else (btn.Name == "btn2")
{
richTextBox1.AppendText("pressed2");
}
张贴的代码片段不完整,但很容易推测出混乱的原因。
基本上,您的控制台应用程序是按顺序处理的,其中某些阻塞调用将输入注入流。
另一方面,在WinForm应用程序中,flow是基于事件的。没有预先确定的事件顺序,也没有阻塞调用。
您的控制台代码检查外部if
中answer
变量的值,然后等待来自用户的新输入以进行进一步处理。你的WinForm代码检查btn.Name
,附加一些文本到文本框,然后立即移动到下一个if
语句。如果您想要停止此序列,请从事件处理程序中执行return
,并在另一个事件处理程序中继续您的流。
一个潜在的-1注释: 是的,我知道控制台应用程序可以是基于事件的,不一定是顺序的等等。这个答案应该有助于OP理解逻辑& &;问题。