Я хочу изменить положение курсора мыши на сфокусированное управление. Я меняю фокусы на клавиатуру (клавиша Enter). Как я могу это сделать?Изменение положения курсора мыши на сфокусированное управление
ответ
Здесь вы идете:
void goToActive()
{
Control ctl = this.ActiveControl;
this.Cursor = new Cursor(Cursor.Current.Handle);
if (ctl != null) Cursor.Position = ctl.PointToScreen(new Point(3,3));
}
Чтобы поймать навигационную клавишу со всех переопределения ProcessCmdKey, как show here ..:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Enter) { goToActive(); return true;}
return base.ProcessCmdKey(ref msg, keyData);
}
Update: Если вы не хотите следовать вступающим Key but the Enter
События из ваших мер контроля, вот как это сделать:
Мы регистрируем все элементы управления i п Form.Shown
событие:
private void Form1_Shown(object sender, EventArgs e)
{
registerAllControls(this);
}
Это regisers все элементы управления рекурсивно. Вы можете Exlude некоторые в зависимости от потребностей, может быть проверки названия, типа или Tag
..:
void registerAllControls(Control ctl)
{
ctl.Enter += ControlReceivedFocus;
foreach (Control ct in ctl.Controls)
{
registerAllControls(ct);
}
}
Мы называем модифицированную goToActive
функции только тогда, когда мы не здесь уже ..:
void ControlReceivedFocus(object sender, EventArgs e)
{
if (!((sender as Control).ClientRectangle
.Contains(PointToClient(MousePosition))))
{
goToActive(sender);
}
}
я изменил функцию, чтобы включить вызывающий контроль, чтобы сделать вещи немного легче ..:
void goToActive(object sender)
{
Control ctl = sender as Control;
this.Cursor = new Cursor(Cursor.Current.Handle);
Cursor.Position = ctl.PointToScreen(new Point(3, 3));
if (sender is TextBox) Cursor = Cursors.IBeam;
else Cursor = Cursors.Default;
}
Обратите внимание, что Cursor
имеет склонность забирать неправильные формы; Я установил его на Default
или, для TextBoxes
- IBeam
.
Я протестировал его, он работает, но, как отмечено, я бы предпочел, чтобы мой курсор не отслеживал мой фокус. Сделайте его опцией, а не особенностью!
Как определить изменение фокуса в форме для использования этого кода? –
С помощью переопределения [ProcessCmdKey] (http://stackoverflow.com/questions/5951496/how-do-i-capture-keys-f1-regardless-of-the-focused-control-on-a-form) .. – TaW
Но это на ключевом событии, а не на фокусировке! Некоторые, где фокус меняется, когда условие в 'input' было истинным. Как в 'textBox' года, если символы будут 4 цифры, он будет автоматически фокусироваться на следующем входе –
- 1. Изменение положения курсора/курсора
- 2. Изменение положения курсора мыши в полноэкранном режиме
- 3. Изменение положения курсора в TMemo
- 4. Изменение непрозрачности области на основе положения мыши
- 5. изменение курсора мыши на js
- 6. Slick2D: Изменение чувствительности мыши к изменению положения курсора x/y
- 7. Изменение курсора мыши
- 8. Позиционирование DIV относительно положения курсора мыши
- 9. Изменение текста с изменением положения указателя мыши?
- 10. Настройка положения курсора мыши программно в wxPython
- 11. Поворот дел до положения курсора мыши
- 12. Изменение положения мыши в GLUT?
- 13. HWND Изменение курсора при наведении курсора мыши
- 14. Изменение курсора мыши на html-странице
- 15. Изменение курсора мыши на спрайт DIV
- 16. JTable изменение мыши метод курсора
- 17. Изменение курсора при наведении курсора мыши на неактивное приложение Windows
- 18. Изменение положения курсора в визуальном базовом
- 19. Управление воспроизведением видео с помощью положения мыши на экране
- 20. Изменение положения указателя мыши в FULLSCREEN
- 21. Расчет положения курсора в C#
- 22. Повернуть сетку вокруг положения курсора?
- 23. Изменение курсора мыши в Share Point
- 24. Изменение CSS при наведении курсора мыши
- 25. Изменение курсора при выполнении события мыши
- 26. Изменение курсора мыши на столе, а не на й
- 27. изображения перемещения в зависимости от положения курсора мыши
- 28. Найти сфокусированное управление в форме (в .netCF)
- 29. Как получить размеры курсора мыши на Delphi?
- 30. Добавить класс Css в зависимости от положения курсора мыши
Я добавил версию, которая использует событие Enter для ваших элементов управления. – TaW