2013-02-25 2 views
1

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

ответ

4

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

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

+0

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

2

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

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

-1
// button event in your first form (Form1) 
private void firstButton_Click(object sender, EventArgs e) 
{ 
    Form2 form2 = new Form2(); 
    form2.ShowDialog(); // Shows Form2 
} 

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

+0

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

0

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

+0

Хотя я согласен с этим сценарием, я думаю, что все сводится к конкретному примеру необходимости. OP говорит, что существует одна форма, которая должна быть «в любом случае». – gunr2171

Смежные вопросы