Je travaille sur une application WinForms qui utilise System.Windows.Forms.PrintPreviewDialog
pour afficher une boîte de dialogue Aperçu avant impression. Lorsque l'utilisateur appuie sur ESC dans cette boîte de dialogue, je voudrais fermer la boîte de dialogue. Malheureusement, je ne peux pas comprendre comment faire cela. J'ai essayé d'installer un gestionnaire d'événements KeyDown/PreviewKeyDown, mais il n'est jamais appelé. J'ai également essayé de mettre l'accent sur le dialogue (et sur son PrintPreviewControl), en pensant que c'était le problème, mais cela n'a pas aidé non plus. Est-ce que quelqu'un a une idée de comment faire ce travail?Close PrintPreviewDialog lorsque ESC est pressé
Répondre
J'ai fini par personnaliser PrintPreviewDialog
et en remplaçant sa méthode ProcessCmdKey
pour fermer le formulaire lorsque l'utilisateur appuie sur ESC. Cela semble être la solution la plus propre.
Voici le code que j'ai écrit:
using System.Windows.Forms;
namespace MyProject.UI.Dialogs
{
class CustomPrintPreviewDialog : PrintPreviewDialog
{
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
// Close the dialog when the user presses ESC
if (keyData == Keys.Escape)
{
this.Close();
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
}
}
Je n'ai pas essayé cela, mais ne pas System.Windows.Forms
s appeler CancelButton
lorsque vous appuyez sur Echap? Essayez de créer un bouton d'annulation factice qui appelle .Close
sur le formulaire.
C'est une possibilité intéressante, mais je l'aurais plutôt pas d'ajouter des contrôles supplémentaires à la forme. J'ai trouvé une solution qui implique de surcharger la fonction 'ProcessCmdKey' de la boîte de dialogue (voir ma propre réponse, ailleurs sur cette page), ce dont je suis satisfait. –
- 1. détruire une vue lorsque le bouton retour est pressé
- 2. PrintPreviewDialog Modification possible?
- 3. Personnalisation de .NET PrintPreviewDialog?
- 4. UIButton scintille lorsqu'il est pressé
- 5. Activer la compilation automatique lorsque F5 est pressé et que la source est obsolète
- 6. Empêcher la sortie plein écran lorsque "ESC" est enfoncé dans Flex
- 7. Comment simuler un close() dans la facebox
- 8. comment changer l'image bouton lorsque le bouton pressé
- 9. Pour augmenter est pressé dans Android
- 10. UIButton se déplace lorsqu'il est pressé
- 11. Comment capturer l'événement d'impression dans PrintPreviewDialog
- 12. C# Comment effacer une zone de texte lorsque le bouton retour arrière est pressé?
- 13. Silverlight style de bouton comment éviter l'état focalisé lorsque le bouton est pressé?
- 14. iPhone effectuer une action lorsque le bouton d'effacement de UITextField/UISearchBar est pressé
- 15. Javascript popup close reload
- 16. L'événement OnClosing n'est pas appelé lorsque le bouton Close, X, est enfoncé. Windows Mobile
- 17. PHP et MySQLi close()
- 18. Carte Touche Esc dans Vim
- 19. Form Dispose() ou Close()
- 20. Est-ce que close/fclose sur stdin est correct?
- 21. emacs: remappage C- [(actuellement ESC)
- 22. Listener pressé pour une vue
- 23. Firing event on application close
- 24. réglage Problème couleur du sélecteur ListView lorsqu'il est pressé
- 25. OBjective-C: Utiliser NSTimer alors que l'application est close
- 26. CAsyncSocket :: Close Crashes
- 27. Comment exécuter une fonction quand "Enter" est pressé?
- 28. iPhone - Comment animer un bouton lorsqu'il est pressé?
- 29. jquery-ui close dialog
- 30. Open/Close NHibernate Session
Bonne solution, merci de l'avoir posté sur votre question. –
Merci, c'était vraiment utile –