2008-11-11 63 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,但你可以使用一些的PInvoke調用Win32函數:

[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屬性:
當窗體被另一種形式擁有的,它最小化,並與業主形成封閉例如,如果窗體2是由窗體Form1所有,如果。 Form1已關閉或最小化,Form2也關閉或最小化。擁有的表單也不會顯示在其所有者表單的後面。「