2016-06-07 3 views
1

Я использую OpenFileDialog в приложении WinForms, и я не могу решить, как получить родительскую форму для отображения после вызова 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.Maximise и FormWindowState.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

Смежные вопросы