Динамический WinForm или анкета - PullRequest
1 голос
/ 12 февраля 2009

Я в процессе преобразования ASP.Net Web App в C # WinForm App . Я борюсь за конвертацию конкретной страницы. Эта страница представляет собой анкету, где каждый ответ (обычно rdo) определяет, каким будет следующий вопрос.

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

Тогда я подумал, что могу сгруппировать изменяющиеся вопросы по панелям и установить соответствующий флаг visible . Это работает, но быстро становится кошмаром для «следующего парня».

Затем я подумал, что смогу создать коллекцию всех элементов управления вопросами и построить форму, когда они отвечают динамически.

  • Это хорошая идея?

  • Как мне поступить?

  • ICollection

  • В качестве альтернативы, я слишком много думаю это (общая проблема) и есть гораздо более простое решение?

  • Вам сначала нужно больше деталей?


Спасибо и удачного дня!

Ответы [ 2 ]

2 голосов
/ 12 февраля 2009

Как насчет создания «шаблона вопроса» в качестве пользовательского элемента управления с метками, переключателями и т. Д. И присвоения ему таких свойств, как текст для вопроса и список возможных ответов? Это упростит работу по динамическому построению формы при добавлении каждого вопроса. Это не полный ответ, я понимаю, но это может быть отправной точкой.

1 голос
/ 12 февраля 2009

Я бы описал этот конечный автомат (вот что он есть) в каком-то формате, например XML, а затем автоматически сгенерировал из него код WinForms. Что касается фактического подхода пользовательского интерфейса, один из способов - использовать элемент управления вкладками - создать несколько вкладок (конечно, без заголовков) и заполнить каждую страницу содержимым, связанным с вашим вопросом. Затем просто добавьте навигационную логику, которая связана с вашим конечным автоматом. Вот и все!

...