的應用程序的背景仍然存在,當我按下後退按鈕。有誰知道我能做什麼,以防止這種情況發生? 如果我使用Application.Exit(),它可以工作。C#的Windows Mobile標準 - 後退按鈕將不會關閉應用程序
在此先感謝 愛計算器:)
的應用程序的背景仍然存在,當我按下後退按鈕。有誰知道我能做什麼,以防止這種情況發生? 如果我使用Application.Exit(),它可以工作。C#的Windows Mobile標準 - 後退按鈕將不會關閉應用程序
在此先感謝 愛計算器:)
我不知道你在「後退按鈕」的意思是什麼,但所有的應用程序在Windows Mobile的默認行爲是「X」按鈕該應用程序將是標準Windows中的「關閉」按鈕,實際上的行爲與「最小化」相似,並將應用程序移至背景。
要真正「親密」的應用程序,你通常會進入windows mobile的任務管理器,結束應用程序。
在很多WM設備上,除了「確定」按鈕外,還有一個「後退」按鈕,用箭頭表示。我認爲正常的行爲是立即將用戶彈出到今日屏幕。我認爲這是他正在談論的按鈕。我不知道如何改變或掩蓋按鈕的行爲,因爲它通常不會被KeyDown事件或其他事件識別。 – 2009-10-08 20:31:44
ooooh,'後退'硬件按鈕......更有意義。我自己有一個三星Omnia(觸摸屏),所以我沒有考慮任何硬件按鈕。抱歉! – CodingWithSpike 2009-10-09 17:41:44
您可以使用本機功能AllKeys
並將Form.KeyPreview
設置爲true以在用戶按下硬鍵時接收KeyDown事件。將KeyDown事件處理程序添加到窗體中,在KeyDown處理程序中放置一個斷點並按下「返回」按鈕並檢查KeyEventArgs.KeyCode
的值。您可以將KeyEventArgs.Handled
設置爲true以防止Windows Mobile處理硬件按鍵。
這裏是PInvoke的信息:
[DllImport("coredll.dll", SetLastError = true)]
static extern bool AllKeys(bool bAllKeys);
呼叫AllKeys(真)接收的KeyDown事件的硬件按鍵。調用AllKeys(false)以停止接收硬件密鑰的KeyDown事件。這個功能沒有官方文檔,但是它自從Pocket PC 2003以來一直存在。請參閱here瞭解更多信息。
後退按鈕是一款Windows Mobile標準版(智能手機)功能,通常是不存在的,在Windows Mobile Professional或經典(掌上電腦)設備。
在本機OS級別以下MSDN文章,題爲「The Back Button and Other Interesting Buttons」描述的默認行爲,以及如何重寫或者改變它。
內.NET CF環境採取MSDN可看看「How to: Override the Smartphone Back Key」的文章。例如,在表單類中,您應該可以執行類似下面的操作。
// Connect an event handler to the KeyPress event
this.KeyPress += new KeyPressEventHandler(OnKeyPress);
private void OnKeyPress(object sender, KeyPressEventArgs ke)
{
// Determine if ESC key value is pressed.
if (ke.KeyChar == (Char)Keys.Escape)
{
// Handle the event to provide functionality.
ke.Handled = true;
// Add your event handling code here.
MessageBox.Show("Back key was pressed.");
}
}
在Windows Mobile中,您通常不會結束進程。使用[X]按鈕關閉應用程序時,或者當您轉到主屏幕時,通常會使應用程序繼續運行。
在Windows Mobile的應用程序並不需要非常多的內存,因爲它不會從硬盤複製到RAM。它只停留在同一個RAM點上,只是現在它是「活動的」。自然,您的應用程序應該表現良好,在沒有關注時儘可能減少資源佔用。
如果你不想要這種行爲,當表單失去焦點時,你可以退出應用程序(Application.Exit())。您可以通過LostFocus事件輕鬆捕捉到這一點。
難道是我的設備上的「後退按鈕」是打印紅色電話的那個?
你是什麼意思的後退按鈕..? 您能否正確解釋您的查詢。 – Naruto 2009-10-09 10:01:52