Я создаю приложение формы Windows в C#, и у меня есть две формы. Основная форма, в которой пользователь будет работать с графиком и другой формой, которая содержит: опции внешнего вида, опции осей, варианты ярлыков и т. Д. Эта форма появляется, когда нажата кнопка «Инструмент». Оттуда я намерен позволить пользователю изменять свой график по своему усмотрению. Мой вопрос: Быстрее/лучше заполнить вторую форму, когда первая форма загружается или инициализируется, или просто она должна делать это при нажатии кнопки «Инструмент».Когда должна быть заполнена вторая форма в приложении winform?
ответ
Этот вопрос касается разницы между надежной загрузкой (как можно скорее загружаются данные) и ленивой загрузкой (при необходимости загружать данные). Я думаю, что решение здесь должно сводиться к опыту пользователя. Если для загрузки данных требуется немного времени, и ваши пользователи будут часто обращаться к окну свойств, я бы предлагал вам активную загрузку. Если, с другой стороны, загрузка происходит быстро или это особенность, которая будет нечастая, тогда я бы предложил ленивую загрузку. Итак, вам нужно выяснить, чего ожидают ваши пользователи. Но, если данные для экрана загружаются быстро, это вряд ли имеет значение, что вы загружаете, когда.
Я также предлагаю вам переосмыслить окно свойств, особенно если оно будет использоваться часто. Парадигмой такого пользовательского интерфейса было внедрение PropertyGrid в такое же окно приложения, где основная часть работы выполнена. Подумайте о Visual Studio для многих, многих примеров и практически любого приложения в стиле IDE. Они не имеют окна с «плавающими» свойствами. Парадигма заключается в том, что вы показываете свойства любого объекта, выбранного в настоящее время в среде IDE, чтобы обеспечить быструю и легкую модификацию. Отдельные инструменты | Парадигма параметров больше для параметров уровня приложения, которые изменяются гораздо реже и привязаны к приложению в целом, а не к определенным объектам, которыми управляет приложение. Опять же, Visual Studio - хороший пример.
На мой взгляд, было бы лучше создать новый экземпляр второй формы, когда вы нажмете соответствующую кнопку. Я бы подумал, что вам нужно только выделить память для формы, когда вам это нужно.
Однако, если ваши формы быстро загружаются, это не имеет значения с точки зрения пользователя, если вы скрываете вторую форму до тех пор, пока не будет нажата кнопка.
// button event in your first form (Form1)
private void firstButton_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.ShowDialog(); // Shows Form2
}
Следует использовать, поскольку вам может не понадобиться кнопка вообще.
Это вообще не отвечает на вопрос. ОП не спрашивает о том, как открыть новую форму. – AbZy
Создание нескольких форм при запуске не очень масштабируемо. Когда у вас есть 20-30 форм, потребуется загрузка! Создавайте их по мере необходимости.
Хотя я согласен с этим сценарием, я думаю, что все сводится к конкретному примеру необходимости. OP говорит, что существует одна форма, которая должна быть «в любом случае». – gunr2171
- 1. iScroll 5 не работает, когда вторая страница должна быть прокручивать
- 2. SQL - выберите переменную, которая должна быть заполнена
- 3. Внутренняя директива выполнена первой - должна быть вторая
- 4. Как отключить форму, когда активна вторая форма
- 5. Форма входа в систему должна быть заполнена несколько раз, прежде чем она войдет в систему
- 6. Set активны, когда форма заполнена (Угловой)
- 7. Отправка электронной почты администратору, когда форма заполнена
- 8. Структура данных, которая должна быть заполнена в VBA
- 9. Как транзакция должна быть обработана при использовании единицы работы шаблона в приложении WinForm
- 10. Форма должна быть конвертирована в System.Web.UI.Page
- 11. Функция не вызывается, когда она должна быть в приложении узла
- 12. winform в консольном приложении
- 13. Форма Php на нескольких страницах должна быть предварительно заполнена, если пользователь идет назад
- 14. Убедитесь, что форма C# имеет фокус, когда она должна быть
- 15. Закрыть App Когда вторая форма Закрывает
- 16. Почему структура addrinfo должна быть частично заполнена до использования getaddrinfo()?
- 17. Вторая нормальная форма Определение
- 18. Когда вторая дочерняя форма вызывается в родительской форме. 1-я детская форма должна закрываться автоматически. Как я могу это сделать?
- 19. Форма должна быть пересчитана по цене заказа
- 20. Форма Ajax должна быть очищена после подачи
- 21. Вторая строка и третья строка должна быть одна строка
- 22. Когда функция должна быть вызвана?
- 23. Когда ссылка должна быть атомарной?
- 24. Когда функция должна быть эффективной?
- 25. вторая форма отправки не работает в приложении php для facebook
- 26. Когда JtextField заполняется, ячейка JTable должна быть заполнена. Как это сделать?
- 27. Регистрация формы, если форма заполнена
- 28. Если обработка исключений должна быть централизована, значит, компоненты WinForm ошибочны?
- 29. Получение объекта назад, когда должна быть строка
- 30. Когда должна быть «я» ссылка в IOS?
Вау, спасибо, что ответили на мой вопрос. Поистине выше и выше того, что я просил, и невероятно полезно. – user2023068