2008-11-11 7 views
2

Windows Mobile 6 양식을 맨 앞으로 가져 오는 데 문제가 있습니다. 나는이 이미Windows Mobile 6 양식을 앞으로 가져 오기

Form1 testForm = new Form1(); 
testForm.Show(); 
testForm.BringToFront(); 
testForm.Focus(); 

같은 것들을 시도하지만 그 코드를 포함하는 형태로 뒤에 항상. 나를 위해 일했다 유일한 일이

있습니다
testForm.TopMost = true; 

또는 숨기기(); 이전 양식을 작성한 다음 새 양식을 표시하지만 다른 양식을 숨기지 않으려합니다. TopMost는 여러 가지 다른 양식을 사용하여 매우 깨끗합니다. 작동

다른 것은

testForm.ShowDialog(); 

하지만 나는 양식 모달을 보여주고 싶어하지 않습니다.

짧게 자르십시오. 새로운 양식을 다른 양식 앞에 표시하고 닫으면 이전 양식을 다시보고 싶습니다.

누군가이 문제를 해결할 수 있습니다. 고맙습니다.

답변

2

나는 WM6에 그것을 시도하지 않은,하지만 당신은 Win32 함수를 호출하는 일부의 PInvoke를 사용할 수 있습니다

[DllImport("coredll.dll")] 
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName); 

[DllImport("coredll.dll", EntryPoint="SetForegroundWindow")] 
private static extern int SetForegroundWindow(IntPtr hWnd); 

전화를 FindWindow 핸들을 얻기 위해 다음 SetForegroundWindow를 호출합니다. 기타 기능 당신이 유용하다고 할 수 있습니다

이 ShowWindow, BringWindowToTop,을 SetWindowPos

0

이 시도 :

양식에 타이머를 넣어.
진드기를 짧게 설정하면 100ms가됩니다.
timer_tick 이벤트에서
- 타이머를 사용 안 함으로 설정하면 (다시 틱하지 않으므로)
- 하위 폼을로드하십시오. 또한

당신이 form.owner 재산을보고 할 수 있습니다 :
"형태가 다른 형태로 소유하는 경우,이 최소화되고 소유자 양식을 폐쇄 예를 들어, Form2를 양식 Form1을 소유 한 경우, 경우. Form1은 닫히거나 최소화되고 Form2는 닫히거나 최소화됩니다.소유 된 양식은 소유자 양식 뒤에 표시되지 않습니다.. "

관련 문제