今天的第二个问题,但这一次我相信有一些真正奇怪的事情发生。下面的代码不是我的原始代码,我试图用尽可能少的行重现行为。在我的原始代码中,我使用配置文件导入应用程序路径和名称,并在foreach循环中调用CreateButton函数。 我想创建多个按钮,应该打开不同的应用程序。当我硬编码路径时,一切正常。当我在foreach循环中使用变量时,每个按钮都使用提交的最后一个路径。这里是代码的工作: # D
Progress progress = new Progress();//progress.DialogResult is OK.
if (progress.ShowDialog() != DialogResult.OK)
{//progress.DialogResult is cancel.
throw new ArgumentException();
}
在调试器中它说结果
我已经意识到使用ShowDialog()会导致表单落后于其父窗体。所以我寻找一个解决方案。 许多人说解决方案是将父窗体作为参数传递给子窗体。 就是这样。 using(Form f = new Form1())
{
f.ShowDialog(this);// while the 'this' is the parent form calling
}
但这段代码仍然失败。 这是场景。