컨트롤이 손실되는 스플리터 패널에 문제가있어서 다시 설정해야합니다.이전 컨트롤에 포커스 설정
내 응용 프로그램은 SplitContainer를 사용합니다. 내 컨트롤이 스플리터의 panel2에서 데이터를로드하면 focus1이 panel1로 이동합니다.
tab 및 shift + tab은 패널과 스플리터 모두에서 작동해야하기 때문에 두 패널에서 tabStop = true 인 컨트롤이 있습니다.
다시 설정하려면 GotFocus에서 panel2 컨트롤을 위해 Control 개체를 추가하고이 컨트롤을 panel1의 _enter에서 사용하여 panel2에서 포커스를 다시 설정하십시오. 그러나이 컨트롤 개체를 다시 설정해야합니다. 그것은 panel2의 _leave에서 할 수 없습니다. 다시 컨트롤 GotFocus를 설정하면 다시 호출 될 것이기 때문입니다.
_gotfocus에는 true로 설정하고 control A의 _Leave에는 false로 설정하려고 시도했지만이 값은 _enter에서 true로 설정해야합니다. 이전 컨트롤이 A 인 경우 응용 프로그램에서 A로 포커스를 다시 설정할 수 있도록합니다.하지만 B가 Tab 및 Shift + 탭을 사용하여 포커스를 설정해야하므로 해당 값을 false로 유지할 수 없습니다. 그런 다음 컨트롤 B에서 false로 설정을 시도했으나 컨트롤을 위해 .Focus()를 수행하고 있기 때문에이 플래그는 매번 true로 재설정됩니다. – 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
나는 당신이 말한 것을 오해했다. 나는 모듈 수준의 스코프 제어 변수가 문제에 대한 좋은 해결책이라고 생각한다. –