2009-10-07 121 views
-2

如何判断某个文本框是否有焦点?我正在用.NET编写C#。检查对象是否有焦点

+2

JavaScript in C#? – Stu 2009-10-07 17:05:46

+0

重复:http://stackoverflow.com/questions/483741/how-to-determine-which-html-page-element-has-focus – 2009-10-07 17:06:08

+0

'javascript'标记可能是一个错误,但这不是重复的上述问题恕我直言。 – RedGlyph 2009-10-07 17:28:06

回答

3

由于性能可与通用的解决方案的问题,我已经遇到到目前为止,最简单的办法如下:

  1. 订阅你关心的每个控件的onfocus事件。
  2. 在onFocus处理程序中,为刚刚获得焦点的元素设置一个全局变量(也许是“lastFocusElement”)。
  3. 当您需要知道某个控件具有焦点时,请与“lastFocusElement”变量进行比较。
+0

在这里,对于C#,我实际上有'Enter'事件,而不是onFocus(和OnEnter方法)。但是,这就是我的想法,当我需要跟踪焦点元素并且工作正常时,我通常会这样做。 – RedGlyph 2009-10-07 17:30:22

4

您将不得不使用javascript事件OnFocusOnBlur,并设置某种类型的变量。基本上是:

<script> 
    var lastFocus=null; 

    function DoesControlHaveFocus(var control){return control==lastFocus;} 
</script> 
<input type="text" onfocus="lastFocus=this" onblur="lastFocus=null"/> 

FOR A版本,将在工作后台代码,你会隐藏字段设置为在聚焦状态命令,然后你可以检查控件的ID。

+0

我认为这将是我的答案。虽然我没有机会尝试,但看起来是正确的。 +1给你。 – Eric 2009-10-07 17:44:25