none
Обработка события клика на куче контролов RRS feed

  • Вопрос

  • Добрый день (утро, вечер, ночь...), уважаемые знатоки. Проблема вот в чем (не смеятся!): Есть куча Label (а именно 255 шт) в контейнере (Panel). Мне надо отследить и выяснить на какой именно метке был клик мыши? В VB6 все было просто-создаешь одну метку с нужными св-вами и дальше копипастишь сколько надо (создается массив меток), затем кликаешь по одной из них- заготовка появилась в коде (одна для всех меток!!!). Дальше можно ловить в этой процедуре индекс нужной метки и т.п... А вот как сделать подобное в VB.NET (VS2010)? Что-нибудь типа "

    Private

    Sub Label3_Click(sender As System.Object, e As System.EventArgs) Handles Label3.Click, Label4.Click..." и так далее - это сколько писанины приписывать клик для каждой метки вручную (да хоть и копипастом-всеравно править надо - долго и муторно), их как я говорил -255 штук, а если больше? Как можно это дело облегчить, помогите!?


    Alexandr_Smirnoff

Ответы

  • Можно выделить все метки в дизайнере форм, затем в окне свойств переключиться в обработчики событий и прописать имя обработчика клика, который будут сгенерирован с коде формы. При этом все метки будут подписаны на обработку одним и тем же обработчиком события клик. Пишу на память - студии под рукой нет. Но что-то типа этого должно решить поставленный вопрос, а думаю
    Don't forget to vote for useful replies and/or mark answers for your questions - that helps other guys to find the answer faster.
    • Предложено в качестве ответа Dmitry Pavlov 17 мая 2011 г. 6:52
    • Помечено в качестве ответа Alexandr_Smirnoff 17 мая 2011 г. 18:21

Все ответы

  • В панель они в какой-то момент добавляются ведь? Делайте подписку на событие в момент добавления. Либо можно пробежаться по вложеной коллекции панели в момент когда все элементы уже на своих местах и так же сделать подписку.
    Отвечающий
  • Можно выделить все метки в дизайнере форм, затем в окне свойств переключиться в обработчики событий и прописать имя обработчика клика, который будут сгенерирован с коде формы. При этом все метки будут подписаны на обработку одним и тем же обработчиком события клик. Пишу на память - студии под рукой нет. Но что-то типа этого должно решить поставленный вопрос, а думаю
    Don't forget to vote for useful replies and/or mark answers for your questions - that helps other guys to find the answer faster.
    • Предложено в качестве ответа Dmitry Pavlov 17 мая 2011 г. 6:52
    • Помечено в качестве ответа Alexandr_Smirnoff 17 мая 2011 г. 18:21
  • А после в обработчике клика на метке sender приводить к типу Label и смотреть по имени или по заранее заданному свойству Tag, которая из меток была нажата и выполнять соответсвующие действия. Или если есть массив меток - то делать IndexOf и по индексу определять, что необходимо сделать.

    Пожалуйста, не забудьте отметить ответы, которые решили вашу проблему. Спасибо.


    Для связи [mail]
  • Можно выделить все метки в дизайнере форм, затем в окне свойств переключиться в обработчики событий и прописать имя обработчика клика, который будут сгенерирован с коде формы. При этом все метки будут подписаны на обработку одним и тем же обработчиком события клик. Пишу на память - студии под рукой нет. Но что-то типа этого должно решить поставленный вопрос, а думаю
    Don't forget to vote for useful replies and/or mark answers for your questions - that helps other guys to find the answer faster.


    То, что доктор прррописал!!!!!!!!!!!

    Спасибо!


    Alexandr_Smirnoff
  • Всегда рады помочь :)
    Don't forget to vote for useful replies and/or mark answers for your questions - that helps other guys to find the answer faster.