Форма Windows Forms открывается в фоновом режиме, если я открываю OpenFileDialog в его событии Load - PullRequest
3 голосов
/ 14 декабря 2010

Мне нужно, чтобы пользователь выбрал файл для открытия, прежде чем он сможет использовать основную форму в программе, которую я пишу. Я написал следующее в обработчике события загрузки формы:

private void MainForm_Load(object sender, EventArgs e)
{
    if (openXmlFileDialog.ShowDialog() != DialogResult.OK)
        Application.Exit();

    fileName = openXmlFileDialog.FileName;
    Activate();
}

После этого MainForm появляется в фоновом режиме, несмотря на вызов Activate () для него.

Другая проблема состоит в том, что если пользователь нажимает кнопку Cancel и вызывается Application.Exit (), это не имеет никакого эффекта.

Ответы [ 2 ]

3 голосов
/ 14 декабря 2010

Вместо этого поместите код в событие Shown.

1 голос
/ 14 декабря 2010

Сделайте это в Program.cs

[STAThread]
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    OpenFileDialog o = new OpenFileDialog();
    if (DialogResult.OK == o.ShowDialog())
    {
        Application.Run(new Form1(o.FileName));
    }
    else
    {
        Application.Exit();
    }
}

В Form1.cs

string filename;
public Form1(string filename)
{
    this.filename=filename;
    InitializeComponent();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...