C# 控制';在使用鼠标(而不是键盘)时,s Focused属性在离开处理程序时已更改

C# 控制';在使用鼠标(而不是键盘)时,s Focused属性在离开处理程序时已更改,c#,winforms,C#,Winforms,我正在使用一个文本框,当文本框失去焦点时,需要触发一些逻辑 我的问题有两个: 由于某种原因,Leave事件会在每个按键上触发,这意味着逻辑会在不应该的情况下随每个按键一起运行 当使用Textbox的Focused属性作为双重检查时,如果该属性仍然设置,只需退出即可。现在,当用户使用鼠标离开时,该属性起作用,但当用户弹出选项卡时,该属性不起作用 当鼠标用于更改焦点时,文本框的Focused属性在其Leave事件激发时为False,但当Leave事件由于Tab键按下而激发时,该属性仍然为True。真

我正在使用一个文本框,当文本框失去焦点时,需要触发一些逻辑

我的问题有两个:

  • 由于某种原因,Leave事件会在每个按键上触发,这意味着逻辑会在不应该的情况下随每个按键一起运行
  • 当使用Textbox的Focused属性作为双重检查时,如果该属性仍然设置,只需退出即可。现在,当用户使用鼠标离开时,该属性起作用,但当用户弹出选项卡时,该属性不起作用 当鼠标用于更改焦点时,文本框的Focused属性在其Leave事件激发时为False,但当Leave事件由于Tab键按下而激发时,该属性仍然为True。真的吗


    我需要一个解决方法,因为每次击键时触发的逻辑现在都会给用户带来一个问题,需要在匆忙之后修复。

    我创建了一个表单,表单上有一个文本框,并将事件处理程序附加到该文本框的左事件。然后我在这个文本框里输入了一堆东西。没有提出这一事件。我点击tab,事件被提出。然后我在文本框中单击后退,再键入一些,然后单击另一个控件,事件被引发


    我只是说有其他东西干扰了文本框。我会进一步研究这个问题,或者发布一些代码来演示这个问题。

    TextChanged事件中是否有运行的内容?显然,在每次按键时触发Leave事件是不正常的。不,TextChanged没有附加任何内容。您是否在容器控件或表单上捕获了任何其他事件?