Страница: 1 | 2 |
Вопрос: keydown
Добавлено: 14.03.09 20:36
Автор вопроса:
maza_____ | Web-сайт:
Всем привет!
У меня на форме много кнопок панелей и т.д. Мне нужно сделать так что бы когда в программе нажали на кнопку допустим 1 в label.text появлялось 1 если 2 то 2.Можно ли написать 1 раз функцию или что то вроде этого, а не писать один и тотже код в событии keydown у каждого элемента формы?
Ответы
Всего ответов: 18
Номер ответа: 1
Автор ответа: EROS
Вопросов: 58
Ответов: 4255
Профиль | | #1
Добавлено: 14.03.09 23:25
Можно.. для это тебе надо через AddHandler повесить событие Click каждой кнопки на одну и туже процедуру.. Кроме этого.. есть такой приемчик: ты в свойство Tag для каждой кнопки прописываешь нужную цифру (или текст) а в событии Click получаешь из этого свойства текст и загоняешь в нужный label. В результате у тебя получится 2-3 строки кода вместо кучи процедур для каждой кнопки
Номер ответа: 2
Автор ответа: maza_____
ICQ: 9968842
Вопросов: 40
Ответов: 337
Web-сайт:
Профиль | | #2
Добавлено: 16.03.09 17:17
А где мне найти этот AddHandler?))
Номер ответа: 3
Автор ответа: EROS
Вопросов: 58
Ответов: 4255
Профиль | | #3
Добавлено: 16.03.09 17:48
А где мне найти этот AddHandler?))
Нууу например в msdn.. http://msdn.microsoft.com/ru-ru/library/7taxzxka.aspx
или в гугле с яндеком.. надеюсь тебя в поисковых машинах не забанили? или ты вообще искать не пробовал?
Номер ответа: 4
Автор ответа: maza_____
ICQ: 9968842
Вопросов: 40
Ответов: 337
Web-сайт:
Профиль | | #4
Добавлено: 16.03.09 22:06
EROS, Я вроде разобрался кое как сам) посмари плз правильно или можно как то сократить?
Номер ответа: 5
Автор ответа: EROS
Вопросов: 58
Ответов: 4255
Профиль | | #5
Добавлено: 16.03.09 22:35
EROS, Я вроде разобрался кое как сам) посмари плз правильно или можно как то сократить?
Ну не совсем и сам.. ))) Но молодец, что хоть пытаешь что то сам сделать..
Во-первых.. для чего тебе событии KeyDown у кнопки? У конпки, как правило, обрабатывают событие Click
Во-вторых.. твой код, в принципе, работать будет, но это, прямо скажем, кривой код. Правильнее было бы перебрать коллекцию контролов на форме и в цикле подключить все обработчики событий. Сделать это можно в Form_Load примерно так:
ну и чтобы тебе легче было понимать мой код можешь воспользовать одним из online переводчиков кода, например этим:
http://converter.telerik.com/
переводит достаточно криво но общий смысл ты уловить сможешь..
Номер ответа: 6
Автор ответа: maza_____
ICQ: 9968842
Вопросов: 40
Ответов: 337
Web-сайт:
Профиль | | #6
Добавлено: 16.03.09 22:39
Просто я вопрос не очень точно задал)) мне нужно нажатие клавиш с клавиатуры ))
Номер ответа: 7
Автор ответа: maza_____
ICQ: 9968842
Вопросов: 40
Ответов: 337
Web-сайт:
Профиль | | #7
Добавлено: 16.03.09 22:40
Спасибо кстате
Номер ответа: 8
Автор ответа: maza_____
ICQ: 9968842
Вопросов: 40
Ответов: 337
Web-сайт:
Профиль | | #8
Добавлено: 16.03.09 22:55
Чо то не хочет работать этот код:
Номер ответа: 9
Автор ответа: EROS
Вопросов: 58
Ответов: 4255
Профиль | | #9
Добавлено: 16.03.09 23:06
AddHandler (item.KeyDown), AddressOf Form1_KeyDown
скобки убери - это раз.. во вторых кнопки должны лежать на форме.. если же они у тебя лежат в каком нибудь контейнере типа Panel(TabPage и т.д.) , то и указывать надо
For Each item As Control In Panel1.Controls
и на будущее, прежде чем писать
будь добр напиши что за ошибку пишет.. я хоть и обладаю телепатическими способностями но не до такой степени
Номер ответа: 10
Автор ответа: maza_____
ICQ: 9968842
Вопросов: 40
Ответов: 337
Web-сайт:
Профиль | | #10
Добавлено: 16.03.09 23:07
никакой ошибки нету всё правильно но они у меня на панеои лежат
Номер ответа: 11
Автор ответа: maza_____
ICQ: 9968842
Вопросов: 40
Ответов: 337
Web-сайт:
Профиль | | #11
Добавлено: 16.03.09 23:10
они у меня на groupbox'e лежат значит нада писать groupbox.controls?
Номер ответа: 12
Автор ответа: maza_____
ICQ: 9968842
Вопросов: 40
Ответов: 337
Web-сайт:
Профиль | | #12
Добавлено: 16.03.09 23:15
я пишу:
Ошибка:Error 1 Reference to a non-shared member requires an object reference.
Номер ответа: 13
Автор ответа: EROS
Вопросов: 58
Ответов: 4255
Профиль | | #13
Добавлено: 16.03.09 23:16
ну да.. только вместо groupbox надо писать реальное имя этого контрола, например groupbox1.Controls
Controls - это коллекция дочерних элементов контейнера, в данном случае у тебя groupbox1 выступает в роли контейнера для кнопок и остальных элементов
Номер ответа: 14
Автор ответа: EROS
Вопросов: 58
Ответов: 4255
Профиль | | #14
Добавлено: 16.03.09 23:17
Error 1 Reference to a non-shared member requires an object reference.
все правильно, эта ошибка говорит о том, что у тебя на форме нету контрола с именем Panel
Номер ответа: 15
Автор ответа: maza_____
ICQ: 9968842
Вопросов: 40
Ответов: 337
Web-сайт:
Профиль | | #15
Добавлено: 16.03.09 23:18
Воо)))урааа работает!! спасибо большое!)) а нельзя написать что нибудь типа For Each item As Control In groupbox1.controls and groupbox2.controls?