【问题标题】:c# - Closing browse dialog causes form to closec# - 关闭浏览对话框导致表单关闭
【发布时间】:2011-01-01 05:06:15
【问题描述】:

我有一个通过以下方式显示的表单:ShowDialog()。 表单没有指定CancelButton

当我从表单打开BrowseDialog 然后关闭BrowseDialog 时,表单也关闭了。我怎样才能防止这种情况发生?

当点击“浏览”按钮时:

browseDialog.SelectedPath = projectLocation.Text;
browseDialog.ShowDialog();

if (browseDialog.SelectedPath != "")
{
      projectLocation.Text = browseDialog.SelectedPath;
}

当点击表单的“取消”按钮时:

Close();

【问题讨论】:

  • 给我们看一些代码。您可能会在某处调用 Form.Close...
  • WinForm 项目,其中有一个“FolderBrowserDialog”表单?仅供参考:我无法复制您使用 VS Studio 2010 beta 2 编译针对 .NET FrameWork 3.5 所描述的行为。

标签: c# .net winforms dialog


【解决方案1】:

我猜你用来显示 BrowseDialog 的按钮的 DialogResult 设置为 None 以外的值。

如果不是这样,请发布一些代码。

【讨论】:

  • 哦,哈哈,就是这样。我什至没有想到将浏览按钮设置为取消。非常感谢! :D
  • 是的,如果你复制粘贴控件就会发生这种情况。
  • 哈哈哈!那也是我的问题。感谢您的回答。在复制和粘贴过程中我会更加小心。
【解决方案2】:

在浏览器对话框的关闭事件中,检查发送方 arg 以查看哪个对话框请求关闭,如果不是浏览器 dlg,请设置 e.Cancel = true

【讨论】:

    【解决方案3】:

    当我遇到类似问题时,我偶然发现了这一点,请确保您的父表单没有设置 ITS 对话框结果,因为一旦调用模式对话框的事件完成,如果父表单设置为非无,父表单将关闭.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2018-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多