我遇到分离器面板失去控制权并需要将其设回的问题。将焦点设置为以前的控件
我的应用程序使用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
我误解了你的意思..我认为模块级作用域控制变量对你的问题是一个很好的解决方案 –