2016-06-07 81 views
1

我在WinForms应用程序中使用OpenFileDialog,我无法弄清楚如何在调用OpenFileDialog.ShowDialog()后获得父窗体。OpenFileDialog正在尽量减少父表格

功能完全按预期工作。问题是在调用OpenFileDialog之后,表单保持最小化到系统托盘,并且无法从托盘中手动打开窗口,我无法将其显示在其原始位置。

构造

public Simulator() 
{ 
    InitializeComponent(); 
    LoadMachine(); 
    ... 
} 

封闭方法

private void LoadMachine() 
{ 
    ...   
    //LoadFile is the OpenFileDialog 
    LoadFile.InitialDirectory = Application.StartupPath; 
    if (LoadFile.ShowDialog() != DialogResult.OK) return; 
    else 
    { 
     //some file IO stuff here 
    } 
} 

我一直在使用this.Focus()this.BringToFront()FormWindowState.MaximiseFormWindowState.Normal除其他尝试,但似乎没有任何恢复窗口。 Google和SO都没有为我提供任何解决方案。有任何想法吗?

+0

你的LoadFile但不告诉我们任何关于它的细节。我假设你分类了OpenFileDialog。 – Sorceri

+0

我将它包含在我的编辑中。 'LoadFile'是我的表单的一部分'OpenFileDialog'的名称。 – Scott

回答

3

尝试将LoadMachine()置于Shown事件中Simulator。在显示窗体之前正在运行ShowDialog代码。

例子:

private void Simulator_Shown(object sender, EventArgs e) 
    { 
     LoadMachine(); 
    } 
+0

完美,谢谢! – Scott