Как грамотно убрать фокус с TextBox?

951
12 января 2017, 03:15

Всем доброе утро. Как грамотно убрать фокус с TextBox? Свойство Focused для данного контрола доступно только для чтения. Как вариант устанавливаю фокус на label, но на сколько это правильно - не знаю.

Answer 1

Чтобы убрать фокус, нужно передать в 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);
Answer 2

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

READ ALSO
Создать собственный вариант TileMode c# WPF

Создать собственный вариант TileMode c# WPF

Можно как-то создать собственный вариант ImageDrawingTileMode в c# wpf

329
Указать url для пагинации в CalendarController

Указать url для пагинации в CalendarController

Добрый день! Есть проект на Yii2, в контроллере CalendarController я через action index во view вывожу ListViewВсе работает замечательно, но при переключении пагинации,...

405
Laravel – передача значения во вложенную функцию

Laravel – передача значения во вложенную функцию

Хочу вывести в цикле изображения, привязанные к конкретному значению id из базы данныхКак мне передать в функцию значение id?

414
Как изменить проверку кода в Netbeans?

Как изменить проверку кода в Netbeans?

Нетбинс говорит, что мол плохое значение для айди, поскольку у данного атрибута не должно быть пустых мест (whitespaces)Тоже самое происходит с name

427