|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.01.2016, 14:36 | #1 |
Пользователь
Регистрация: 05.11.2009
Сообщений: 96
|
Всплывающая подсказка для элементов
Доброго времени дня. Вопрос такой. На форме имеется 30+ textbox-ов, как в цикле можнодля каждого текстбокса вывести свою подсказку.
Знаю что есть такой вариант Код:
|
13.01.2016, 14:42 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Что мешает подписать все текстбоксы на одно и то же событие и использовать sender? (может быть еще имеет смысл в массив/список/Dictionary их запихнуть, смотря какая задача)
Или только на форме в дизайнере кликать научились, а основы C# и WinForms не изучили?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
14.01.2016, 07:19 | #3 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Выкинуть все 30 текстбоксов с формы и поискать темы на форуме "динамическое создание компонент", соответственно по примеру кода из тех тем сделать массив текстбоксов, дать им тег - индекс элемента массива и дать один обработчик маусэнтера, в котором, полагаясь на массив[тег_сендера], вызывать подсказку.
Тот же ответ, что и у Alex11223, но иными словами, может немного понятней будет, да и найдёте пример кода быстрее. |
14.01.2016, 10:14 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
а если их 30 особых, а не просто подряд? не думали?
там может быть вроде анкеты например. вместо уникального обращения, получим обращения по индексам, зачем усложнять себе жизнь? так что прежде чем советовать динамику, стоит посмотреть исходную задачу. ибо если у ТС типа списка, это одно, анкета(каждый бокс однозначен и предопределен) иное. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 14.01.2016 в 10:16. |
14.01.2016, 10:17 | #5 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Можно и без тега использовать сам текстбокс/sender в качестве ключа в Dictionary.
А создавать динамически не факт что удобно и нужно автору, если это не какие-то одинаковые текстбоксы в один ряд и т.п.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
14.01.2016, 16:58 | #6 |
Пользователь
Регистрация: 05.11.2009
Сообщений: 96
|
Не подумал об этом сразу, нужно было сразу пояснить. Все текстбоксы уникальные. Есть база с эталонными значениями, есть некая анкета из которой в текстбоксы заносятся значения, потом эти значения сравниваются с эталоном. В итоге хотел при наведении на текстбокс чтоб во всплывающей подсказке показывало эталонное значение. Как Вы правильно подметили динамика тут не поможет
|
14.01.2016, 17:10 | #7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
ну тогда вам подойдет словарик вида Component=>string
для хранения подсказок, главное тока заполнить верно, и общий обработчик, как и говорили. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
15.01.2016, 06:53 | #8 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Не понимаю, что неправильного в динамике ? Конкретно автору может быть неудобно, допустим (пропустим мысль о неких уникальных боксах при примере кода, в котором текстбокс3), но динамика позволяет сделать всё то же что и человек, вот только цена изменений будет копеечная - можно все настройки выкинуть вовне программы (или константы) и грузить на старте создавая всё без работы мышкой (в случае с внешним хранением, в той же базе, даже без перекомпиляции получится), когда, например, надо отрегулировать ширину или отступы и т.п.
Динамическое создание не значит безликую колонку контролов, всё настраивается, и писать это немногим дольше, чем ручками ворочать по форме при таком количестве. А если нужны изменения, то та цена будет возвращена уже на первом (например, надо в середину добавить бокс, что особенно легко будет при относительном указании координат, тут уж как напишешь; или скрыть часть боксов). Даже легко взять текущий лейаут (из дизайнер.цс) и конвертнуть его в массив настроек. Я не агитирую, конкретный случай может не иметь смысла в переделке и словарь - нормальное решение (кроме, конечно, лапши из необходимости добавить все 30 боксов в него при ините формы, или даже если циклом проходить по components то лапшу связки боксов и подсказок при таких именах боксов сделать придётся). Я бы ратовал хотя бы за переименование боксов так, чтобы в базе можно было чётко указать читаемое имя бокса и подсказку, чтобы эту же лапшу в цикл в программе положить. К слову - хранение подсказок в базе - уже динамика, моё предложение было лишь довести её до полноты. |
15.01.2016, 09:18 | #9 | ||||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
то что бокс не переименнован, это мало о чем говорит. зачем увеличивать сложность ПО без явного на то смысла? скучно? дизайнер форм на то и создан чтоб облегчить ее, а не усложнить. Цитата:
Цитата:
Цитата:
зачем делать то что не надо? можно уж сразу на HTML/JS перейти клиентский. всему свое место и время. избыточный и преждевременный рефакторинг тоже зло. PS: кстати лэйауты не требуют динамики от слова совсем. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LotusScript всплывающая подсказка для Button | MaxCher | JavaScript, Ajax | 0 | 06.03.2015 11:34 |
Всплывающая подсказка | Dexes | JavaScript, Ajax | 5 | 20.02.2012 15:59 |
всплывающая подсказка | ГОСЕАН | Помощь студентам | 4 | 15.11.2011 14:04 |
Всплывающая подсказка | Swatch | Microsoft Office Access | 1 | 18.03.2010 18:49 |
Всплывающая подсказка (С#) | Лучик_света | Помощь студентам | 1 | 25.10.2008 10:44 |