2009-02-03 6 views
4

Je suis nouveau sur Windows Mobile et j'ai créé une application qui doit être nettoyée lorsqu'un formulaire est fermé. Lorsque je clique sur Fermer dans la ControlBox, il n'appelle pas l'événement OnClosing. Cela fonctionne très bien dans les fenêtres normales, mais ne fonctionne pas avec mon appareil Windows Mobile.L'événement OnClosing n'est pas appelé lorsque le bouton Close, X, est enfoncé. Windows Mobile

Voici mon code:

protected override void OnClosing(System.ComponentModel.CancelEventArgs e) 
{ 
... 
} 

J'ai aussi essayé sans succès:

Form.Closing += new System.ComponentModel.CancelEventHandler(WindBaseForm_Closing); 

Je vous serais reconnaissant toute aide que vous pouvez donner.

Répondre

9

Correct. Le bouton (X) dans Windows Mobile s'appelle le bouton "Réduire Smart" et ne fait que réduire le formulaire. Définissez la propriété MinimizeBox du formulaire sur false et la valeur (OK) sera remplacée, ce qui fermera le formulaire (et augmentera l'événement).

Pour les détails sanglants quant à pourquoi cela se produit, read this.

+0

Merci! C'était exactement ça. Aussi super lien! –

+0

Cet article, que j'ai lu auparavant, montre seulement que MS ne savait pas vraiment comment les autres appareils fonctionnaient. En fait, Palm a fermé tous les programmes lorsque vous avez changé, il avait juste une bonne politique qui disait que chaque application devrait s'efforcer d'enregistrer et de restaurer l'état exact lors de la relance. –

+0

Palm n'a jamais vraiment "fermé" les applications car elles n'ont jamais "chargé" de la même manière que les applications CE. Palm a exécuté les PDB en place, en passant directement du système d'exploitation au code de l'application. Ce n'était pas un système d'exploitation multitâche, il est donc très difficile de faire un parallèle qu'un développeur uniquement Windows comprendrait. – ctacke

Questions connexes