1

我有以下情况:

  1. ParentForm以. WelcomeForm_ShowDialog
  2. WelcomeForm包含一个打开的NewProjectForm按钮ShowDialog
  3. 当用户点击OKNewProjectForm,会创建一个新项目并关闭两个表单(良好行为)
  4. 当用户点击CANCELNewProjectForm,两个表单都关闭(可以理解的行为,但不可取)。

我怀疑这在某种程度上与DialogResult(实际上是DialogResult.NoneonCANCEL NewProjectForm)有关

我怎样才能在不关闭两种形式的情况下得到上述情况?

编辑
用于打开的代码NewProjectForm

ProjectNew projectNew = new ProjectNew();
projectNew.StartPosition = FormStartPosition.CenterParent;
projectNew.ShowDialog(this);

用于打开的代码WelcomeForm

Welcome welcome = new Welcome();
welcome.StartPosition = FormStartPosition.CenterParent;
welcome.ShowDialog(this);

注:NewProjectForm不是由打开而是WelcomeParentForm

编辑 2
奇怪的东西;我创建了一个具有相同代码/情况的新项目,它不会重现这种行为......

4

3 回答 3

1

这是一个长期存在的问题,我遇到过几次。这篇文章有更多的讨论,以及一个解决方法。

它显然已在 .Net 3.5 SP1 中修复(安装 SP1 后我无法再复制它),尽管我还没有看到任何官方消息表明它确实已修复。

于 2010-01-29T11:28:28.613 回答
1

我被这个咬住了,因为我从另一个表单复制/粘贴了一些按钮,没有意识到其中一个按钮的 DialogResult 属性设置为DialogResult.Cancel

单击时,这是设置包含表单的 DialogResult,导致它关闭。

将其重置为DialogResult.None解决了问题。

因此,请检查所有模式对话框的 DialogResult 属性。

于 2011-07-19T16:07:15.220 回答
0

删除了几个按钮,添加了一个新按钮:已解决。
所以我认为它应该是一个 DialogResult 不知何故,奇怪的东西。

于 2010-02-05T11:16:14.673 回答