Всем доброе утро. Как грамотно убрать фокус с TextBox? Свойство Focused для данного контрола доступно только для чтения. Как вариант устанавливаю фокус на label, но на сколько это правильно - не знаю.
Чтобы убрать фокус, нужно передать в SetFocus параметр NULL:
hWnd [in, optional]
A handle to the window that will receive the keyboard input. If this parameter is NULL, keystrokes are ignored.
Код:
[DllImport("user32.dll")]
private extern static IntPtr SetFocus(IntPtr hWnd);
// ...
SetFocus(IntPtr.Zero);
Focused - свойство, возвращающее находится ли сейчас элемент в фокусе.
Для того чтобы сфокусироваться на элементе, можно использовать winapi функцию SetFocus.
Пример кода:
[DllImport("user32.dll")]
private static void SetFocus(IntPtr Handle);
void OnClick(object sender) {
if((Button)sender.Name == "Button")) {
SetFocus((Button)sender.Handle);
}
}
Или можно установить хук на WndProc, но скорее всего вам это нужно.
Подробнее о хуке WndProc на MSDN
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости