netlib.narod.ru | < Назад | Оглавление | Далее > |
Хотя события Click и DoubleClick не предоставляют объект MouseEventArgs, указывающий позицию курсора мыши, это не значит, что эти сведения недоступны вовсе. Класс Control поддерживает два неизменяемых статических свойства, указывающих позицию мыши и текущую нажатую кнопку (кнопки):
Статические свойства Control (выборочно)
Тип | Свойство | Доступ | Описание |
Point | MousePosition | Чтение | Возвращает позицию мыши в координатах экрана |
MouseButtons | MouseButtons | Чтение | Указывает кнопки, нажатые в данный момент |
Эти свойства можно задействовать при обработке любых событий. Так как они статические, их можно использовать даже в классе, не являющемся производным от Control.
Имейте в виду, что свойства X и Y объекта MouseEventArgs указывают положение курсора мыши в координатах клиентской области, a Control.MousePosition дает позицию курсора в координатах экрана. Можете использовать метод PointToClient для преобразования координат экрана в координаты клиентской области.
Со статическим свойством Control.ModifierKeys мы познакомились в главе 6, поскольку оно имеет отношение к клавиатуре:
Статические свойства Control (выборочно)
Тип | Свойство | Доступ | Описание |
Keys | ModiflerKeys | Чтение | Состояние клавиш Shift, Ctrl и Alt |
Однако, как было сказано при описании этого свойства, оно чаще применяется при обработке событий мыши. Например, если требуется инициировать действие, когда пользователь нажимает левую кнопку мыши одновременно с клавишей Shift (но не какой-либо иной клавишей), обработка OnMouseDown может начинаться так:
if ((mea.Button == Buttons.Left) && (Control.ModifierKeys == Keys.Shift))
netlib.narod.ru | < Назад | Оглавление | Далее > |