Создание меню параметров с перекрывающимися панелями - PullRequest
2 голосов
/ 15 апреля 2010

Я пытаюсь создать меню опций в проекте форм C #, и мне любопытно, есть ли менее уродливый способ сделать это. У меня есть ListBox, который имеет различные категории параметров, и когда вы выбираете категорию, параметры для этой категории появляются на панели справа. По сути, что-то идентичное меню параметров в самой Visual Studio.

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

В настоящее время я использую разные объекты Panel для каждой категории (в настоящее время их 13), но разработка каждой панели - головная боль, потому что мне нужно каждый раз перетаскивать остальные 12 панелей, когда мне нужно изменить одну. Есть лучший способ сделать это? Я открыт для любых предложений, будь то полное изменение в реализации или даже просто совет Visual Studio по работе с 1 из 13 панелей, которые все перекрываются.

Если ничего не помогает, я мог бы использовать TabControl, визуализированный горизонтально, но мне не нравится, как это выглядит.

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 15 апреля 2010

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

1 голос
/ 15 апреля 2010

Сначала вы должны знать, когда находитесь в режиме разработки, в выпадающем меню «Окна свойств» («Просмотр» -> «Свойства») есть раскрывающееся меню, в котором можно выбрать элемент управления. Так что вам не нужно чрезмерно убирать другие элементы управления.

Во-вторых, я бы сделал панель опций для каждой категории, это собственный пользовательский или пользовательский элемент управления. Таким образом, вы можете редактировать саму панель отдельно. Затем у вас есть возможность показать / скрыть этот пользовательский элемент управления, когда выбрана его категория, или даже динамически создать элемент управления.

1 голос
/ 15 апреля 2010

Я могу вспомнить три альтернативных подхода:

  1. (Ok) Используйте элемент управления с вкладками, который не отображает заголовки для пользователя.
  2. (лучше) Создание пользовательских элементов управлениядля каждой страницы параметров, поэтому у вас есть разные файлы дизайнеров для каждой.
  3. (еще лучше?) Динамически генерировать пользовательский интерфейс на основе некоторой описательной информации, поэтому нет файлов дизайнеров для работы вообще.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...