J'ai une fonctionnalité .NET TextBox avec saisie semi-automatique sur le formulaire. Le formulaire a également AcceptButton et CancelButton définis. Si j'essaie de valider une suggestion avec la touche Entrée ou de fermer la liste déroulante avec Esc, mon formulaire se ferme. Comment puis-je empêcher ce comportement?Boutons de saisie semi-automatique et par défaut de TextBox
5
A
Répondre
2
N'affectez pas les propriétés de formulaire AcceptButton et CancelButton. Définissez DialogResult dans l'événement OnClick des boutons.
0
au lieu d'accepter et Annuler, vous pouvez aller pour l'approche suivante:
- Set KeyPreview propriété pour la forme à true.
Manipulez le KeyDown événement de la forme, dans la méthode de gestionnaire vous pouvez avoir quelque chose de similaire au code ci-dessous
switch (e.KeyCode) { case Keys.Enter: { if (!txtAuto.Focused) { Save(); } break; } case Keys.Escape: { if (!txtAuto.Focused) { Close(); } break; } }
2
Une façon simple est de supprimer AcceptButton et CancelButton propriétés lorsque vous êtes dans la zone de texte auto-complétée:
public Form1()
{
InitializeComponent();
txtAuto.Enter +=txtAuto_Enter;
txtAuto.Leave +=txtAuto_Leave;
}
private void txtAC_Enter(object sender, EventArgs e)
{
AcceptButton = null;
CancelButton = null;
}
private void txtAC_Leave(object sender, EventArgs e)
{
AcceptButton = btnOk;
CancelButton = btnCancel;
}
0
Une autre option est d'obtenir votre propre classe TextBox personnalisée qui effectue une validation lors enture/retour est pressé:
public class MyTextBox : TextBox
{
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Enter || keyData == Keys.Return)
{
// Perform validation here
return true;
}
else
return false;
}
}
Questions connexes
- 1. Windows Forms: plusieurs boutons par défaut?
- 2. Ajouter un élément au menu contextuel TextBox par défaut
- 3. Conventions par défaut de NHibernate par défaut
- 4. par défaut et sdbarker_tiny GUI de NSIS
- 5. TextBlock et TextBox superposés dans la grille. blocs TextBlock de saisie manuelle des données
- 6. Vue par défaut de l'élément de liste par défaut Sharepoint
- 7. L'apparence par défaut de Icefaces et comment le personnaliser
- 8. Zend_Db_Table_Abstract et l'étendue par défaut
- 9. Comment désactiver la gestion des boutons JDialog par défaut de la touche ENTRÉE dans un composant
- 10. Modification de la police par défaut dans Windows désactive mes boutons Win Forms
- 11. Texte par défaut sur l'entrée
- 12. Evénement de touche affectée par des boutons
- 13. Valeur par défaut de stockage
- 14. Widgets par défaut de Wordpress
- 15. C# Affectation propriété par défaut pour la classe et l'opérateur =
- 16. Saisie de la date et de l'heure
- 17. Valeur DropDownList Valeur par défaut
- 18. Formulaires, boutons de publication et de soumission
- 19. Où puis-je trouver un exemple de code de saisie semi-automatique TextBox pour Silverlight?
- 20. Commandes WPF - Exécution sans code par défaut
- 21. Railo, Tomcat IIS7 et documents par défaut
- 22. charge de contrôle utilisateur dynamique et par défaut Namespace
- 23. Espace de noms XML par défaut, JDOM et XPath
- 24. Prise en charge DPI et modifications de police par défaut
- 25. ASP.NET MVC - mélange personnalisé et modèle par défaut de liaison
- 26. Localisation de ms et valeurs booléennes par défaut
- 27. Arguments de classe d'arguments nommés et par défaut dans Python
- 28. injection Constructor et les surcharges par défaut
- 29. jQuery textbox et html
- 30. WPF: incorporation de TextBox dans TextBox
événement KeyDown du formulaire ne sera pas tiré. – Zhenya