|
Вопрос # 3 208/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Имеется один общий список условий для выбора, который отображается для пользователя в виде набора RadioButton (10 шт. например). Так как размер Form не позволяет отразить все 10 RadioButton, то я их разбил на 2 по 5 и расположили на страницах PageControl. Вопрос:
Как заставить RadioButton на разных страницах работать как один список?
PS.Пробовал использовать TabControl - не удобно, слишком много компонентов на маленькой площади.
 |
Вопрос задал: Вадим1979 (статус: Посетитель)
Вопрос отправлен: 18 сентября 2009, 20:00
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Егор
Здравствуйте, Вадим1979!
1) Можно писать краткий текст к каждому пункту, а более подробный выводить, например, в подсказке (hint)
2) Ваш вариант - с разными вкладками... Ну, тут только отслеживать событие выбора - и, если выбор сделан в первой части списка, убирать выбор во второй, т.е. связь сделать программно.
 |
Ответ отправил: Егор (статус: 10-ый класс)
Время отправки: 18 сентября 2009, 20:19
Оценка за ответ: 5
Комментарий к оценке: Вариант...
|
Мини-форум вопроса
Всего сообщений: 11; последнее сообщение — 21 сентября 2009, 22:11; участников в обсуждении: 5.
|
Егор (статус: 10-ый класс), 18 сентября 2009, 20:19 [#1]:
Подробнее бы - что за проект, какие пункты, снимок экрана...
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
|
Ерёмин А.А. (статус: *Администратор), 18 сентября 2009, 20:24 [#2]:
Не очень хорошая идея - разнести элементы одной группы по разным страницам. Это противоречит типичным интерфейсам программ и сильно запутывает пользователя.
|
|
Мережников Андрей (статус: Абитуриент), 18 сентября 2009, 20:27 [#3]:
можно сделать прокрутку на форме. или расположить буттоны в две колонки
|
|
Вадим1979 (статус: Посетитель), 20 сентября 2009, 10:27 [#4]:
Пункты из нормативного акта. Их много (порядка 20). Все емкие по тексту и не всегда можно сжать до короткого выражения, т.к. может потеряться смысл и пользователь не найдет нужный пункт для выбора.
Прокрутка то же не удобна (напрягает). Программа используется пользователем почти постоянно. Со временем пользователь привыкнет, где искать какой пункт, если список будет разнесен по страницам.
Думаю единственный вариант - это отслеживать выбор программно как посоветовал Егор.
Думал может можно как-то страницы одного PageControl "признать" единым пространством. Тогда бы все проблемы решились разом.
|
|
Егор (статус: 10-ый класс), 20 сентября 2009, 12:18 [#5]:
можно ещё все флажки поместить на одну панель в два-три ряда. а саму панель сделать длиииииннную - шире формы. тогда те ряды, что будут выходить за форму, будут "не видны", а при нажатии на нужную кнопку (влево-вправо), можно сдвигать панель - на ширину столбца. т.е та же прокрутка, только не вверх-вниз, а влево-вправо. прокрутку реализовать тем же tabcontrol'ом
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
|
Егор (статус: 10-ый класс), 20 сентября 2009, 12:50 [#6]:
сделал пример (с "плавной прокруткой"), выложил здесь:
http://narod.ru/disk/13325306000/3208%20(copy%202).rar.html
просто показать, как это может работать
а так, можно сделать безо всякой "плавности" - сразу скачком
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
|
Вадим1979 (статус: Посетитель), 20 сентября 2009, 19:06 [#7]:
Посмотрел твой пример, Егор. Идея как раз та что нужна! Просто 5 баллов! Спасибо!
|
|
Вадим К (статус: Академик), 21 сентября 2009, 00:25 [#8]:
Такого плана задачу можно решить проще и красивее. Если уж так надо длинное-длинное описание, то ставим комбобокс вверху, в него вводим короткие название (названия тех же нормативных актов - люди, которые каждый день с ними работают, знают по памяти). А под комбобоксом находиться memo/richedit/Webborouser, куда подгружается выбранный документ. И всё - интерфейс сразу разгружается, и все влазит на одну страничку.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Вадим1979 (статус: Посетитель), 21 сентября 2009, 19:39 [#9]:
Вадим К:
Вариант с комбобоксом не подойдет. Задача не совсем та.
У меня есть список условий(20), каждое условие емкое по смыслу и тексту (например, 4-5 строк и все это описание различных категорий, входящих в группу). Всего получается 20 групп, которые пользователь и выбирает. Назвать как-то коротко группу не получается, т.к. обязательно, что-нибудь забудешь (не влезет). Вот по этому и запросил светлых мыслей.
Если что родится, буду рад попробовать.
|
|
Вадим К (статус: Академик), 21 сентября 2009, 20:56 [#10]:
Если надо писать емкие пункты, в которых будет путаться пользователь, значит уже что то не так в дизайне. Хотя Вы это и сами поняли
Но Вы хотите пользователю постоянно показывать все описания. А спрашивали его, будет ли он их читать? думаю что нет. Через несколько недель он будет помнить их по заголовкам, даже если эти названия будут суррогатными (то есть просто пункт 1, пункт 2). По этому не нужно бояться, что что то забудется в названии. Главное, что бы они не совпадали.
Но есть пользователю надо всего один пункт, то можно сделать ещё один ход конем.
Все пункт помещаем в многострочный ListBox (то есть, один элемент в нем представлен несколькими строками), а под/над ним помещаем edit. Пользователь может как просто выбрать в листбоксе, там и написать слово, которое есть в тексте, а программа отфильтрует и оставит только те пункты, где есть нужное слово. Если использовать листбокс в виртуальном режиме, это вообще не сложно.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Вадим1979 (статус: Посетитель), 21 сентября 2009, 22:11 [#11]:
Вадим К:
Не исключено, что Вы правы...
Возьму тайм аут на денек подумать...
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|