2009-10-08 3 views
0

Фон приложения все еще присутствует, когда я нажимаю кнопку «Назад». Кто-нибудь знает, что я могу сделать, чтобы это предотвратить? Если я использую Application.Exit(), он работает.C# windows mobile standard - кнопка «Назад» не закрывает приложение

спасибо заранее любви StackOverflow :)

+1

Что вы подразумеваете под спиной кнопка ..? Не могли бы вы правильно объяснить ваш запрос. – Naruto

ответ

0

Я не уверен, что именно вы подразумеваете под «кнопкой возврата», но по умолчанию в Windows Mobile для всех приложений является то, что кнопка «X» на приложение, которое будет «закрывать» кнопку в стандартной Windows, на самом деле ведет себя как «свести к минимуму» и перемещает приложение в фоновом режиме.

Чтобы действительно «закрыть» приложение, вы обычно заходите в диспетчер задач Windows и завершаете приложение.

+0

На многих устройствах WM в дополнение к кнопке «ОК» есть кнопка «Назад», обозначенная стрелкой. Я считаю, что нормальное поведение заключается в том, что он сразу же выводит пользователя на экран «Сегодня».Я думаю, что это кнопка, о которой он говорит. Я не уверен, как изменить или замаскировать поведение кнопки, хотя обычно это не признается событием KeyDown или чем-то еще. –

+0

ooooh, кнопка «назад», которая имеет смысл. Сам Samsung Omnia (сенсорный экран), поэтому я не думал о каких-либо аппаратных кнопках. Сожалею! – CodingWithSpike

0

Вы можете использовать встроенную функцию 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 для получения дополнительной информации.

2

Кнопка «Назад» - это функция Windows Mobile Standard (смартфон), которая обычно отсутствует в устройствах Windows Mobile Professional или Classic (карманный компьютер).

На исходном уровне ОС следующая статья MSDN под названием «The Back Button and Other Interesting Buttons» описывает поведение по умолчанию и как его переопределить или изменить.

В среде .NET CF взгляните на статью «How to: Override the Smartphone Back Key», доступную в MSDN. Например, в классе формы вы должны сделать что-то вроде следующего.

// 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."); 
    } 
} 
0

В Windows Mobile вы обычно не завершаете процессы. Когда вы закрываете приложение с помощью кнопки [X] или когда вы переходите на главный экран, обычно остается оставить приложение.

Приложение на Windows Mobile не занимает гораздо больше памяти, так как оно не копируется из жесткого диска в плунжер. Он просто остается на одном месте, только сейчас он «активен». Естественно, ваше приложение должно вести себя хорошо, принимая как можно меньше ресурсов, когда у него нет фокуса.

Если вы не хотите этого поведения, вы можете выйти из приложения (Application.Exit()), когда ваша форма теряет фокус. Вы можете легко поймать это с помощью события LostFocus.

Не может быть, что «на задней панели» на моем устройстве есть тот, на котором напечатан красный телефон?

Смежные вопросы