如何检查文本框当前是否处于活动状态或具有焦点?

时间:2010-10-07 21:32:41

标签: c# asp.net textbox

在C#中,是否可以获取bool值,确定光标当前是否在某个文本框内?

我想要实现的目标:

我有一个主页,里面有两个按钮;搜索按钮和登录按钮。根据哪个文本框处于活动状态或具有焦点,或者没有焦点,我想设置UseSubmitBehavior属性。

我想要发生的是这样的事情(我知道这段代码不起作用):

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

目标是使页面以用户期望的方式做出反应,例如当您在搜索字段中输入时,实际上在点击进入时进行搜索,而不是尝试登录。

1 个答案:

答案 0 :(得分: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键,搜索按钮将执行回发。

注意:这不适用于LinkBut​​tons或ImageButtons,如果您使用这些,您可以添加一个解决方法:添加一个普通的Button并将其样式设置为display:none;让LinkBut​​ton和Button触发相同的事件。