如何在文本框失去焦点时捕获该事件?

5

我有一个名为tbx1的文本框,当光标在文本框中闪烁时,如果我点击其他控件,我希望显示一条消息。但问题在于,我必须使用tbx1的事件来捕获焦点改变。

3个回答

11

您可以使用Leave事件。

private void txtbox_Leave(object sender, EventArgs e)
{
        //your Code
} 

您也可以使用,

private void txtbox_LostFocus(object sender, EventArgs e)
{
   //your Code
} 

Leave()事件首先执行键盘事件,然后执行鼠标事件,而LostFocus()事件首先执行鼠标事件,然后执行键盘事件。

基本上,当您使用键盘(TAB,SHIFT + TAB等)更改焦点时,事件按以下顺序发生

1. Enter
2. GotFocus
3. Leave
4. Validating
5. Validated
6. LostFocus 

当您使用鼠标或调用Focus方法更改焦点时,焦点事件按以下顺序发生:

1. Enter
2. GotFocus
3. LostFocus
4. Leave
5. Validating
6. Validated 

1
显然,问题是关于鼠标点击的。该解决方案仅涵盖通过TAB键触发的事件。这些事件都不会在文本框外的鼠标点击时触发。 - Califf

4

此外,也有一个LostFocus事件可以实现这个功能:

private void txtbox_LostFocus(object sender, EventArgs e)
{
    //your Code
} 

-4

你可以使用 jQuery...

<input id="txtName" type="text" />

<script type="text/javascript">
    $("#txtName").blur(function () {
        alert("I am not in textbox.");
    });
</script>

OP指定了Windows窗体。 - ger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接