Je veux avoir un TextBox qui accepte la touche TAB (et place un TAB, ASCII 0x09, \ t dans la zone de texte) au lieu de passer au contrôle suivant . Le TextBox a une propriété AcceptsTab, que j'ai définie à true mais cela ne donne pas le résultat souhaité. Il s'avère que la propriété AcceptsTab ne fonctionne que si Multiline est définie sur true. Cependant, je veux avoir une TextBox d'une ligne qui n'accepte pas les nouvelles lignes.Autoriser les utilisateurs à insérer un TAB dans un TextBox mais pas de retour chariot
Répondre
Voici ce que vous faites. Créez votre propre classe qui hérite de TextBox. Dans le constructeur, définissez multiline sur true et AcceptsTab sur true. Ensuite, passer outre WndProc et utiliser ce code:
protected override void WndProc(ref Message m)
{
if (m.Msg == (int)0x102 && m.WParam.ToInt32() == 13)
{
return;
}
base.WndProc(ref m);
}
Cela bloque la touche entrée d'être acceptée et donc une nouvelle ligne ne sera pas créé. Hacky? oui, mais ça va marcher ..
EDIT: Je vais vous expliquer ce que fait ce code. Chaque formulaire et contrôle de Windows reçoit un message de Windows quand quelque chose se produit, comme la peinture, la touche, etc etc ... Dans ce cas, je cherche un message WM_CHAR (qui est 0x102) qui est le message qui indique à la TextBox la touche a été pressée. Si c'est le message, et le WParam == 13, cela signifie que l'entrée a été pressée, dans ce cas, retourner, ne rien faire. Sinon, reprenez comme prévu. Logique?
Sel multilines à true et définissez la taille de ligne à 1. vous obtiendrez le résultat souhaité.
Comment est-ce que je devrais aller et «placer la taille de ligne à 1»? – pbean
- 1. TextBox let '\ n' le retour de chariot
- 2. Insérer le caractère de retour chariot dans vim
- 3. requête SQL pour un retour chariot dans une chaîne et, finalement, enlever retour chariot
- 4. Retour chariot dans XmlNode Innertext
- 5. MySQL: retour chariot dans la requête
- 6. Comment chercher retour chariot dans Eclipse
- 7. Comment faire Entrée sur un TextBox agir comme bouton TAB
- 8. Le retour à la ligne automatique et le retour chariot ne fonctionnent pas à l'intérieur de la zone de texte
- 9. vba userforms comportement de retour chariot
- 10. Comment autoriser les utilisateurs à modifier les menus frontaux?
- 11. Lancez l'application au démarrage pour tous les utilisateurs, mais également autoriser les paramètres par utilisateur (Windows)
- 12. Autoriser seulement certains utilisateurs à modifier ASPxGridView
- 13. Retour chariot et sauts de ligne dans SQL Server
- 14. Autoriser les utilisateurs à publier des photos sur une application Web via un téléphone mobile?
- 15. Y at-il un retour chariot, une constante de saut de ligne dans MS Access?
- 16. Pourquoi les caractères d'échappement (\) apparaissent-ils dans un champ de formulaire mais pas dans un autre?
- 17. Comment utiliser l'événement KeyPress dans textBox avec le caractère Tab?
- 18. Comment définir la largeur TAB dans un contrôle Windows Forms TextBox?
- 19. Puis-je afficher un fichier PDF, mais ne pas autoriser l'insertion de liens dans un site Web?
- 20. Dans WPF, pouvez-vous lier un ListView (PAS DataGrid) à un DataSet Matrix (Cross-Tab)?
- 21. MVC Preserve retour chariot - saut de ligne en html
- 22. Laisser TextBox à redimensionnée, mais pas de se développer sur l'entrée utilisateur
- 23. Windows Mobile - Autoriser l'entrée d'un e-mail dans TextBox
- 24. Insérer des espaces à la place de TAB dans Emacs viper-mode
- 25. Insérer un lien à l'aide de CSS
- 26. datagrid/textbox fonctionne dans IE 6/7, mais pas les autres
- 27. Où autoriser l'accès à un contrôleur
- 28. Comment autoriser les utilisateurs à associer leurs domaines à une URL sur mon site?
- 29. Comment supprimer le retour chariot en python 2?
- 30. iPhone UITextField: comment insérer une nouvelle ligne avec la touche de retour?
Pouvez-vous ajouter quelques commentaires à la sienne pour expliquer ce qui se passe? –