Как спроектировать пользовательский интерфейс для настроек в соответствии с различными параметрами в C # WinForm? - PullRequest
2 голосов
/ 21 августа 2009

Это вопрос о приложении .NET winform.

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

Как аккуратно спроектировать этот интерфейс в Visual Studio? У меня есть две идеи. Первая идея состоит в том, чтобы иметь много панелей, каждая панель содержит элементы управления настройками. Во время выполнения скрыть все панели, кроме одной в соответствии с выбранным параметром. В этом решении сложно организовать элементы управления формы в конструкторе VS. Вы должны установить большую форму, чтобы вместить все панели. Панели ставятся одна рядом друг с другом. Есть много кода загрузки во время выполнения для записи. Например, при загрузке формы необходимо скрыть панели, сбросить размер формы. Когда вы выбираете опцию, вам нужно переместить панели и показать / скрыть их. Скучная!

Вторая идея - использовать TabControl. TabControl хорош, потому что вкладки хорошо организованы для вас. Вам не нужно перемещать панели и изменять размер формы. Все, что вам нужно сделать во время выполнения, это выбрать правильную вкладку в соответствии с параметрами. Во-первых, вам нужно скрыть части TabControl от пользователя, потому что в конце концов это не настоящий TabControl. Скрывать кнопки вкладок TabControl несложно, но я обнаружил, что после этого всегда существует большой разрыв между областью вкладок и следующей частью формы.

У кого-нибудь есть приличный способ разработки пользовательского интерфейса? Может быть, не используя панели или TabControls, но какой-то умнее? Если TabControl используется большую часть времени, как скрыть и отобразить части вкладок TabControl и как установить поле и размер границы TabControl, чтобы не было большого разрыва? Большое спасибо за любой ответ и предложение.

Ответы [ 4 ]

3 голосов
/ 21 августа 2009

Когда мне нужно это сделать, я помещаю каждую группу элементов управления в свой собственный UserControl, а затем я могу использовать что-то еще для переключения между ними. См., Например, Реализация диалогового окна параметров страницы в моем блоге.

2 голосов
/ 21 августа 2009

Я предлагаю вам создать UserControls для каждой из ваших «настроек», и когда пользователь выбирает опцию, вы загружаете соответствующий UserControl. Возможно, вам придется настроить размер форм, но вы можете легко управлять всеми «настройками» в вашей IDE.

1 голос
/ 21 августа 2009

Использование пользовательского контроля - хороший способ решить вашу проблему. Но вам нужно установить их, вероятно, на панелях и поиграть со свойствами «Видимый» и «Док».

Вам не нужно ставить их на "Fill" в режиме конструктора. Вы можете установить это свойство во время выполнения или при необходимости.

Надеюсь, что это поможет.

0 голосов
/ 21 августа 2009

Звучит так, будто вам нужен какой-то шаблон дизайна.

Почему бы не создать фабрику пользовательского интерфейса, которая возвращает ваши объекты пользовательского интерфейса по мере необходимости / необходимости?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...