我遇到分離器面板失去控制權並需要將其設回的問題。將焦點設置爲以前的控件
我的應用程序使用SplitContainer;當我的控制器加載分離器的面板2中的數據時,焦點正在轉移到面板1。
在兩個面板中都有tabStop = true的控件,因爲選項卡和Shift +選項卡需要在面板和分離器上工作。
要重新設置它,在GotFocus中爲panel2控件添加一個Control對象,並在panel1的_enter中使用此對象將焦點設置回panel2。不過,我需要重置這個控制對象;這是我在panel2的_leave中無法做到的,因爲在設置後臺控件GotFocus時會再次調用。
我試圖在_gotfocus中設置一個標誌爲true,並且在控件A的_Leave中設置爲false,但我需要將此值設置爲true 。如果前一個控件是A,應用程序可以將焦點設置回A.但是,我不能讓該值保持爲假,因爲B應該使用製表符和shift +製表符來設置焦點。然後我試着將它設置爲假,但是因爲我正在做一個.Focus()來控制這個標誌每次都被重置爲真。 – Megha
我確實經歷了並嘗試了http://stackoverflow.com/questions/4428100/find-out-the-control-with-last-focus/37930272#37930272和http://stackoverflow.com/questions/中提供的解決方案。 4408751/previous-focused-control-in-winforms – Megha
我誤解了你的意思..我認爲模塊級作用域控制變量對你的問題是一個很好的解決方案 –