• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Focus

  • Автор темы smertnik
  • Дата начала
S

smertnik

Здравствуйте.

Подскажите, как установить фокус на контрол при нажатие на нем правой кнопки мыши. Можно сделать просто, для каждого контрола создать отдельный обработчик события , но требуется всего 1 обработчик.
 
N

NikSoft

Для: smertnik
Если речь идет о Windows Forms ,как насчет такой схемы?
При загрузке формы обходим коллекцию контролов.
На событие Control.MouseDown вешаем один и тот же обработчик
(http://msdn2.microsoft.com/en-us/library/system.windows.forms.control.mousedown.aspx),
так как любой контрол наследует от типа Control.
В обработчике проверяем условие возможности установления фокуса
(http://msdn2.microsoft.com/en-us/library/system.windows.forms.control.canfocus.aspx).
Если это возможно, устанавливаем фокус
(http://msdn2.microsoft.com/en-us/library/system.windows.forms.control.focus.aspx).
 
M

mms

Можно написать один обработчик (статический например), которому будут делегироваться ивенты контролов.
 
S

smertnik

Все оказывается проще, не может такого быть, чтобы не возвращался обьект вызвавший событие, вот только поначалу я почему то думал, что это будет форма, пока не проверил.

Код:
private void _MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
Control sd = (Control)sender;
sd.Focus();
}
}
:)
 
S

smertnik

Для: smertnik
В обработчике проверяем условие возможности установления фокуса

Вот в этом и была вся загвоздка, вернуть обьект вызвавший событие, не используя несколько обработчиков.

Всем спасибо, наберу 15 сообщений обязательно плюсик нажму :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!