C#超级新手,但在我最近的项目中遇到了一些障碍。我有几个用户可以单击的窗口形式。在主程序中,我有一个while循环,该循环将不断循环访问表单,并将根据用户在上一个表单中按下的按钮(变量称为遍历)来启动表单。现在,我在每种表单上都设置了退出按钮,这将打破while循环。我遇到的麻烦是,当用户按下右上角的红色X时,该表单将不会关闭(将继续重新加载)。我在我认为可能有助于解决该问题的代码行旁边加上了**(但显然没有)。
while (Program.exit != "exit")
{
**if (Application.Exit = true)
{
break
} else
{
if (Program.traverse == "form4")
{
Application.Run(new Form4());
}
if (Program.traverse == "form1")
{
Application.Run(new Form1());
}
if (Program.traverse == "form5")
{
Application.Run(new Form5());
}
}
}
}
C#是否可以检测到用户何时按下红色X来打破循环?
答案 0 :(得分:2)
首先:您的appurouch完全错误。
第二:从头开始,我完全建议您阅读一些有关Windows Forms
技术的书,或者更好的有关Windows Presentation Foundation (WPF)
技术的书。在此之后,您将不会再提出如此棘手的问题,并且将大大提高您的开发速度和质量。
第三:直接回答您的问题:
在您后面的表单代码中,您可以下一步:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Closed += OnClosed;
}
private void OnClosed(object sender, EventArgs e)
{
// DO, what you need when windows closed
}
}