Загрузите форму, не показывая его

11
задан Don Kirkby 16 September 2008 в 04:54
поделиться

5 ответов

Я полностью соглашаюсь с Богатым B, необходимо посмотреть на то, куда Вы помещаете свою прикладную логику вместо того, чтобы пробовать к cludge механизмы WinForms. Все те операции и данные, которые выставляет Ваша форма Задач, должны действительно быть в отдельном классе, говорят, что некоторому Контроллеру Приложения или чему-то сохраненному Вашей основной формой и затем используемый Вашей формой задач, чтобы читать и отобразить данные при необходимости, но не нужна форма, которая инстанцируют для существования.

Это, вероятно, кажется болью для переделки его, но Вы будете улучшать структуру приложения и делать это более удобным в сопровождении и т.д.

6
ответ дан 3 December 2019 в 01:54
поделиться

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

8
ответ дан 3 December 2019 в 01:54
поделиться

Если Вы обнародовали метод, то Вы могли получить доступ к нему непосредственно.... однако, могли быть некоторые неожиданные побочные эффекты при вызове его. Но обнародовать его и вызов его непосредственно не потянут экран или откроют форму.

0
ответ дан 3 December 2019 в 01:54
поделиться

Из MSDN:

Форма. Загрузка
Происходит, прежде чем форма отображена впервые.

Значение единственной вещи, которая заставила бы форму загружаться, состоит в том, когда это отображено.
Form.Show(); и Form.Visible = true; та же самая вещь. В основном, негласно, Выставочные проверки на различные условия, затем устанавливает Видимый на истинный. Так, очевидно, установка видимого ко лжи (который это уже) прежде, чем показать форму бессмысленна.

Но давайте забудем технические особенности. Я полностью согласен с Богатым B и Shaun Austin - логика не должна быть в той форме так или иначе.

5
ответ дан 3 December 2019 в 01:54
поделиться

Переместите обязательный код инициализации для класса формы из Load обработчик событий в конструктора. Для класса Формы инстанцирование экземпляра (через конструктора), загрузка формы и видимость формы является тремя разными вещами и не должно происходить одновременно (хотя они действительно, очевидно, должны произойти в том порядке).

0
ответ дан 3 December 2019 в 01:54
поделиться
Другие вопросы по тегам:

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