2016-06-07 21 views
1

Ich verwende OpenFileDialog innerhalb einer WinForms Anwendung und ich kann nicht herausfinden, wie das übergeordnete Formular nach dem Aufruf OpenFileDialog.ShowDialog() angezeigt wird.OpenFileDialog minimiert übergeordnete Formular

Die Funktionalität funktioniert vollständig wie erwartet. Das Problem ist, dass das Formular in der Taskleiste minimiert bleibt, nachdem der OpenFileDialog aufgerufen wurde, und ich kann es nicht in seiner ursprünglichen Position anzeigen, ohne manuell das Fenster aus dem Fach zu öffnen.

Constructor

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

Enclosing Methode

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

ich versucht habe this.Focus(), this.BringToFront(), FormWindowState.Maximise und FormWindowState.Normal unter anderem mit, aber nichts scheint das Fenster wiederherzustellen. Google und SO haben keine Lösungen für mich ergeben. Irgendwelche Ideen?

+0

Sie haben Loadfile aber nicht zeigen uns jedes Detail darüber. Ich nehme an, Sie haben den OpenFileDialog subclassiert. – Sorceri

+0

Ich habe das in meine Bearbeitung aufgenommen. 'LoadFile' ist der Name des' OpenFileDialog', der Teil meines Formulars ist. – Scott

Antwort

3

Versuchen Sie, LoadMachine() in einem Shown Ereignis für zu setzen. Der Code ShowDialog wird ausgeführt, bevor das Formular angezeigt wird.

Beispiel:

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

Perfekt, danke! – Scott