Как проверить, является ли текстовое поле активным в данный момент или имеет фокус?

2

В С# можно ли получить значение bool, определяя, находится ли курсор в определенном текстовом поле?

Чего я хочу достичь:

У меня есть главная страница с двумя кнопками; кнопку поиска и кнопку входа в систему. В зависимости от того, какой текстовый блок активен или имеет фокус, или нет фокуса, я хочу установить атрибут UseSubmitBehavior.

То, что я хочу, это что-то вроде этого (я знаю, что этот код не работает):

if (textboxUsername.hasfocus == true || textboxPassword.hasfocus == true)
{
    buttonLogin.UseSubmitBehavior = true;
    buttonSearch.UseSubmitBehavior = false;
}
else
{
    buttonLogin.UseSubmitBehavior = false;
    buttonSearch.UseSubmitBehavior = true;
}

Цель состоит в том, чтобы заставить страницу реагировать так, как пользователь ее ожидает, например. на самом деле поиск при попадании на вход, а не попытка входа в систему, когда вы вводите текст в поле поиска.

Теги:
textbox

1 ответ

3
Лучший ответ

То, что вы пытаетесь сделать, не будет работать так.

Однако вы можете использовать поля ввода в панели и поле поиска на панели, а затем добавить к ним значение DefaultButton.

<asp:Panel runat="server" ID="SearchPanel" DefaultButton="Search">
    <asp:TextBox runat="server" ID="SearchInput" />
    <asp:Button runat="server" ID="Search" />
</asp:Panel>

Если вы нажмете enter в этом текстовом поле, кнопка поиска выполнит обратную передачу.

Примечание: это не работает с LinkButtons или ImageButtons, если вы их используете, вы можете добавить обходной путь: добавьте обычную кнопку и настройте ее для отображения: none; и пусть LinkButton и Button запускают одно и то же событие.

  • 0
    Работает как шарм! Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню