Когда должна быть заполнена вторая форма в приложении winform?

Я создаю приложение формы Windows в C#, и у меня есть две формы. Основная форма, в которой пользователь будет работать с графиком и другой формой, которая содержит: опции внешнего вида, опции осей, параметры ярлыков и т. Д. ... Эта форма появляется при нажатии кнопки «Инструмент». Оттуда я намерен позволить пользователю изменять свой график по своему усмотрению. Мой вопрос - Быстрее/лучше заполнять вторую форму, когда первая форма загружается или инициализируется, или она просто делает это при нажатии кнопки «Инструмент».

1
nl ja de

4 ответы

Этот вопрос касается разницы между надежной загрузкой (как можно быстрее загружаются данные) и ленивой загрузки (данные загрузки, когда это необходимо). Я думаю, что решение здесь должно сводиться к опыту пользователя. Если для загрузки данных требуется немного времени, и ваши пользователи будут часто обращаться к окну свойств, я бы предлагал вам активную загрузку. Если, с другой стороны, загрузка происходит быстро или это особенность, которая будет нечастая, тогда я бы предложил ленивую загрузку. Итак, вам нужно выяснить, чего ожидают ваши пользователи. Но, если данные для экрана загружаются быстро, это вряд ли имеет значение, что вы загружаете, когда.

Я также предлагаю вам переосмыслить окно свойств, особенно если оно будет использоваться часто. Парадигмой такого пользовательского интерфейса было внедрение PropertyGrid в том же окне приложения, где основная часть работы выполнена. Подумайте о Visual Studio для многих, многих примеров и практически любого приложения в стиле IDE. Они не имеют окна с «плавающими» свойствами. Парадигма заключается в том, что вы показываете свойства любого объекта, выбранного в настоящее время в среде IDE, чтобы обеспечить быструю и легкую модификацию. Отдельные инструменты | Парадигма параметров больше для параметров уровня приложения, которые изменяются гораздо реже и привязаны к приложению в целом, а не к определенным объектам, которыми управляет приложение. Опять же, Visual Studio - хороший пример.

4
добавлено
Вау, спасибо, что ответили на мой вопрос. Поистине выше и выше того, что я просил, и невероятно полезно.
добавлено автор user2023068, источник

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

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

2
добавлено
// button event in your first form (Form1)
private void firstButton_Click(object sender, EventArgs e)
{
    Form2 form2 = new Form2();
    form2.ShowDialog();//Shows Form2
}

Должен использоваться, поскольку вам может не понадобиться кнопка вообще.

1
добавлено
Это вообще не отвечает на вопрос. ОП не спрашивает о том, как открыть новую форму.
добавлено автор AbZy, источник

Создание нескольких форм при запуске не очень масштабируемо. Когда у вас есть 20-30 форм, потребуется загрузка! Создавайте их по мере необходимости.

0
добавлено
Хотя я согласен с этим сценарием, я думаю, что все сводится к конкретному примеру необходимости. OP говорит, что существует одна форма, которая должна быть «в любом случае».
добавлено автор gunr2171, источник
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot