与我的previous question有关。
在我之前的问题中,我问为什么我的对话框似乎在其他窗口后面打开。 (其他不一定属于我的程序的窗口,例如Excel,Windows资源管理器等)
有人告诉我使用重载的ShowDialog()
并将父级作为参数传递。
很好,我已经用重载替换了所有ShowDialog()。
但是我在这里仍然有同样的问题:
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
OpenFileDialog ofd = new OpenFileDialog();
ofd.ShowDialog(); // First dialog
// Do some stuff here...
SaveFileDialog sfd = new SaveFileDialog();
sfd.ShowDialog(); // Second dialog;
}
}
在此示例中(不要评论代码-我只是将其编写为一个简单示例),用户双击其屏幕上带有多个窗口的可执行文件。 OFD出现在顶部,而SFD出现在所有内容的下面。
我通常在我的简单程序中设置了这种OFD/SFD,这些程序接受CSV或XLS文件并对其进行一些简单处理。在这种情况下,如果没有参数传递给exe,则将OFD代码放入静态Main()方法中并加载对话框。
最佳答案
模态对话框并不是要以这种方式使用,尽管无论如何也无法阻止您这样做。
如shsmith所说,您必须有一个Application.Run
。
对于您在问题中给出的简单示例,我将显示一个带有进度条和/或滚动日志状态文本的小窗口。