首页 > 解决方案 > 当我打开一个新表单两次时,OpenForms 不会运行

问题描述

我在打开新表单时遇到了一些问题。第一次打开新表单时,代码按预期运行,但如果我关闭该表单并立即打开一个新表单,则代码无法正确执行。

请注意,这不是主窗体,这是从主窗体打开的单独窗体。

我怀疑问题出在我从一个单独的类中运行的 Application.OpenForms 中。但我真的不明白为什么它不会第二次运行。

这是一个示例(此代码从单独的类运行。):

在文本框 (txtCFProjectNr) 我写了“0000-0000”,第一次打开表单时返回 0000-0000,第二次返回“2”。

    static frmCFNewProject newProjFrm = Application.OpenForms.OfType<frmCFNewProject>().FirstOrDefault();

    public static void projectNrChanged()
    {
        bool format = Regex.IsMatch(newProjFrm.txtCFProjectNr.Text, @"[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]");
    }

这是我打开新表单的方法

    public void btnCFCreateNewStructure_Click(object sender, EventArgs e)
    {
        frmCFNewProject frm = new frmCFNewProject();
        frm.ShowDialog();
    }

当我重新启动应用程序时,它就像一个魅力,直到表单被关闭并再次打开。

我希望这足以解释。我为我糟糕的英语道歉,这不是我的母语。感谢您的理解。

标签: c#

解决方案


推荐阅读