检测用户何时按下红色x

时间:2018-11-11 13:09:59

标签: c#

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来打破循环?

1 个答案:

答案 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
        }

    }