.NET Open File对话框

时间:2009-07-23 18:59:19

标签: c# dialog

  

可能重复:
  C# OpenFileDialog Non-Modal possible

我正在开发一个C#Windows窗体项目。打开文件对话框时,我无法在GUI中选择任何内容。有没有办法让openfile对话框打开,仍然能够在主ui上选择其他控件?

3 个答案:

答案 0 :(得分:2)

使用标准的OpenFileDialog无法做到这一点。您需要使用Form而不是FileDialog作为基类来创建自己的。这将允许您设计自己的非模态版本。

话虽如此,我建议不要这样做。 Windows中的文件对话框默认为模态。人们期望从您的应用程序中出现这种行为 - 因此更改它只会导致混淆和问题。这往往会使您的应用程序对最终用户的可用性降低并且更加复杂,即使它通常看起来是个好主意。

答案 1 :(得分:1)

常见对话框是模态对话框,根据定义,它们在活动时不允许与进程中的任何其他窗口进行交互。所以问题的答案是否定的,没有办法做到这一点。您必须使用第三方或自己创建的控件来滚动自己的对话框以与文件系统进行交互 - 这不是一项简单的任务。

答案 2 :(得分:0)

DBAN,

OpenFileDialog类不支持Show方法,该方法将以无模式状态打开表单,即不锁定父表单。

据我所知,打开文件对话框的唯一方法就是这样,它是模态的。 ShowDialog方法打开形式为模态。

OpenFileDialog dlg = new OpenFileDialog(); dlg.ShowDialog();

如果您希望它以非模态方式打开,您可以编写自己的打开文件对话框。

但你也应该考虑这是否真的有必要。通常,当向用户呈现文件打开对话框时,这是因为应用程序需要文件。用户在同一时间应该没有其他任何事情可以做。