【问题标题】:Check if an object has focus检查对象是否有焦点
【发布时间】:2009-10-07 17:01:43
【问题描述】:

如何判断某个文本框是否有焦点?我在 .NET 中用 C# 编写代码。

【问题讨论】:

  • “javascript”标签可能是一个错误,但这不是上述问题恕我直言的重复。
  • redglyph:查看编辑历史,他最初说的是“我正在使用 C#.NET 中的 javascript 编写”
  • 好的,感谢您指出这一点,这令人困惑。显然,从最后一条评论来看,它现在还是 Javascript,嗯 ;)

标签: c# .net asp.net javascript visual-studio


【解决方案1】:

您必须使用 javascript 事件 OnFocusOnBlur,并设置某种变量。基本上:

<script>
   var lastFocus=null;

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

对于可以在代码隐藏中工作的版本,您可以在 OnFocus 命令中为控件的 ID 设置一个隐藏字段,然后您可以对其进行检查。

【讨论】:

  • 我想这将是我的答案。虽然我没有机会尝试它,但它似乎是正确的。 +1 给你。
【解决方案2】:

因为性能可能是通用解决方案的问题,所以到目前为止我遇到的最简单的事情如下:

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

【讨论】:

  • 这里,对于 C#,我实际上有 Enter 事件,而不是 onFocus(和 OnEnter 方法)。但这就是我的想法,当我需要跟踪焦点元素并且它工作正常时,我通常会这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多