Что лучший способ состоит в том, чтобы назвать методом прямо ПОСЛЕ ТОГО, КАК форма загрузится?

У меня есть приложение форм окон C#. Путем у меня в настоящее время есть настроенный, когда Form1_Load () работает, это проверяет на восстановленные несохраненные данные и если это находит некоторых, которые это предлагает пользователю, если они хотят открыть те данные. Когда прогоны программы, это работает хорошо, но окно сообщения показывают сразу же и основная форма программы (Form1), не показывают, пока пользователь не нажимает да или нет. Я хотел бы, чтобы Form1 открылся сначала и затем подсказка окна сообщения.

Теперь для обхождения этой проблемы, прежде чем я создал таймер в своей Форме, запустило таймер в Form1_Load () метод и затем выполнило проверку и пользовательскую подсказку в Событии Галочки новичка. Эта техника решает проблему, но, кажется, что мог бы быть лучший путь.

Вы у парней есть какие-либо лучшие идеи?

Править: Я думаю, что также использовал второстепенного рабочего, чтобы сделать что-то подобное. Это просто кажется довольно глупым для прохождения через всей проблемы вызвать метод для поддержки к потоку формы, и все это дерьмо только, чтобы иметь его задержало пару миллисекунд!

6
задан AMissico 2 June 2010 в 13:32
поделиться

4 ответа

Я бы использовал Form1_Shown ()

13
ответ дан 8 December 2019 в 05:53
поделиться

Попробуйте событие «Показано»:

Событие Form.Show

2
ответ дан 8 December 2019 в 05:53
поделиться

Используйте событие Shown. Похоже, оно подходит для того, что вам нужно, и будет отображаться только при первом показе формы.

Form f1 = new Form();
f1.Shown += new EventHandler(f1_Shown);

public void f1_Shown(object sender, EventArgs e)
{
   // Show dialog in here
}
5
ответ дан 8 December 2019 в 05:53
поделиться
  • Использование Windows.Forms.Timer - это хорошая, стабильная, хорошо известная и легко понимаемая техника для выполнения того, что вы хотите. Я бы избегал любых других объектов таймера.

  • Событие формы Shown работает хорошо.

  • Перегрузите / переопределите метод Show. (Я предпочитаю этот метод для большего контроля.) В этом методе я бы выполнил необходимую проверку. Когда он будет готов, я вызову метод base.Show, а затем выполню любую другую обработку, такую как окна сообщений, подсказки, логирование или что-либо еще.

2
ответ дан 8 December 2019 в 05:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: