c# - 当我打开一个新表单两次时,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();
}
当我重新启动应用程序时,它就像一个魅力,直到表单被关闭并再次打开。
我希望这足以解释。我为我糟糕的英语道歉,这不是我的母语。感谢您的理解。
解决方案
推荐阅读
- python - tkinter:移动带有背景的图像
- java - 动画不按顺序工作
- ms-word - 查找并用递增值替换 word 中的数字
- docker - nodemcu Docker 构建环境
- sql - 如何同时使用 Sql Insert 和 Update?
- php - 在数组中循环遍历数组的最有效方法
- java-8 - 对方法的引用是模棱两可的方法引用与 lambda
- vba - SAP 查询 64 位 WIN 和 OFFICE 上的 RFC 连接“ActiveX 组件无法创建对象”
- c# - 编码的 UI - 断言无法检测到专有的 WPF 控件
- mysql - Sequelize JS 插入错误