2009-10-07 127 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