Comment puis-je mettre du Texte dans une zone de texte en C#, Winforms programme?
J'ai un C#, Winforms programme avec plusieurs zones de texte. J'ai utilisé les propriétés de chaque zone pour placer du texte dans les, expliquant à l'utilisateur quelle est la valeur qui se passe en eux. Je veux que le texte pour mettre en évidence chaque fois qu'un utilisateur sélectionne la case. Par tabulation ou la souris cliquez sur. Je n'aurai pas à le faire si il existe un moyen d'afficher ce qui se passe dans la zone de texte quelque part à l'extérieur de l'il.
J'ai essayé la zone de texte.sélectionnez la méthode, mais il n'a eu aucun effet. De même avec cette.
Voici un Capture d'écran de mon programme.
Mon Code:
private void grapplingText1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
{
grapplingText1.SelectionStart = 0;
grapplingText1.SelectionLength = grapplingText1.Text.Length;
Cela fera, ou est plus nécessaire?
- Si vous avez essayé les deux solutions... la seconde doit avoir travaillé... ça pourrait être un bug dans le code. Pourriez-vous veuillez donner le code que vous avez réellement utilisés?
- J'ai posté le code. Laissez-moi savoir si il suffit d'aller sur.
- Donc, n'importe quelle solution vous aider avec ce que tu voulais faire?
- J'ai été en mesure de terminer à l'aide d'Étiquettes, mais depuis, j'ai ajouté les filigranes.
- Le lien vers la capture d'écran est cassé.
Vous devez vous connecter pour publier un commentaire.
Que diriez-vous d'attribuer
ToolTip
àTextBox
et de mettre tous les "talk-ce que la textbox pour" à l'intérieur de ça?Juste drag & drop
ToolTip
à l'intérieur de la Forme. Et puis, à chaqueTextBox
propriétés, vous devriez avoir entrée supplémentaire dans la section DiversToolTip
surtoolTip1
(ou quelque soit son nom si vous le renommer).Ensuite, lorsque l'utilisateur survole
TextBox
(Lecture Seule/DésactivéTextBox
ne semble pas afficher les info-bulles) et s'arrête pendant 1 seconde info-bulle doit indiquer avec une bonne info.Vous pouvez par la suite ou même mieux d'avoir un
Label
à côté deTextBox
en disant: qu'est-ce que c'est, mais avoir unToolTip
est aussi une bonne idée d'expliquer plus d'informations à l'utilisateur avec qui.Pour faire des trucs avec Filigrane de sorte que vous n'avez pas à aller le long chemin en définissant les événements, en prenant soin de SelectAll, etc vous pourriez le faire de cette façon. Créer un nouveau filigrane.cs fichier et le remplacer par ce code. Assurez-vous que vous avez changé d'espace de noms correspondant à votre programme de noms.
Dans votre Formulaire, vous pouvez l'activer comme ceci:
Il y reste aussi longtemps que le
TextBox
est vide. Lorsque les utilisateurs pénètre dansTextBox
texte disparaît. Elle apparaît encore lorsqueTextBox
est nettoyé (par l'utilisateur ou automatiquement). Pas besoin pour des événements spéciaux etc.EDIT:
J'ai ajouté aussi une classe interne WaterMarkTextBox qui vous donne la possibilité de simplement utiliser les nouvelles WaterMarkTexBox qui devient disponible dans le Concepteur. Puis faites-le glisser et déposez-la à votre concepteur et de l'utiliser. Il se comporte comme normal de la zone de texte vous donne du champ supplémentaire WaterMarkText.
Je préfère encore la première méthode tu. Ne fait pas de vous reconstruire votre gui de nouveau.
Je pense .sélectionnez fonctionnera si vous connaissez la quantité de texte que vous souhaitez sélectionner.
Essayer .SelectAll(); Il doit travailler pour vous
Vous devez utiliser la zone de texte.Focus() pour obtenir le focus sur votre contrôle, et si ne le fait pas automatiquement de travail, alors il suffit d'appeler le SelectAll() la méthode d'Entrée() de l'événement.
Cette méthode va vous permettre de vous appeler depuis n'importe quel TextBoxX_Enter() du gestionnaire d'événement.
Sinon, vous pourriez créer un nouveau contrôle utilisateur, appelez ça comme vous voulez sur la création, puis, lors de la création de votre projet, modifier le code et remplacer l'héritage de classe UserControl par la zone de texte de la classe, puis définissez le comportement par défaut que vous aimeriez avoir sur l'Entrée() de l'événement, à l'instar de cet appel à la SelectAll() la méthode, et de le rendre virtuelles protégées, et dans le constructeur, vous pouvez souscrire le gestionnaire d'événement de la sorte:
Je l'ai écrit à la volée, donc peut-être quelques modifications sont nécessaires, mais vous obtenez l'idée. Mais je ne vous conseille pas de le faire sauf si c'est vraiment digne de le faire pour votre propre situation. Le plus simple est le mieux, et le plus simple est de créer un gestionnaire d'événement pour chaque page de votre formulaire de zones de texte, puis d'appeler la TextBoxTextHighlight() la méthode.
Supposons que votre textboxs nom est 'MyTextBox'
Vous pouvez écrire la méthode pour gérer les événements de Focus:
Vous devrez ajouter le gestionnaire d'événement trop:
Cela devrait fonctionner...
MODIFIER
Vous pouvez utiliser la même méthode pour les autres zone de texte, il suffit d'ajouter le gestionnaire d'événement:
Label
/ToolTip
)En règle générale, si vous voulez expliquer à l'utilisateur ce qui se passe dans une zone de texte, vous placez un Étiquette contrôle directement dessus, (ou à côté).
Parfois, cependant, pour enregistrer l'écran de l'immobilier, vous pouvez mettre une description du texte à l'intérieur de de la zone de texte lui-même. Ceci est appelé un en filigrane.
La façon la plus simple pour afficher des informations supplémentaires lors du survol d'un élément serait d'utiliser une info-bulle. J'ai essayé une semblable filigrane approche mais ayant trouvé il n'y a pas de façon immédiate à mettre en œuvre l'info-bulle qui semblait être une alternative appropriée.
Vous pouvez voir comment le mettre en œuvre sur le lien suivant:
Mise en œuvre d'une info-bulle
J'ai trouvé dans ma demande, en joignant le point culminant de la méthode de la mise au point -> Entrez événement ne fonctionne pas bien avec le SelectAll() la méthode. J'ai plutôt utilisé d'Action -> Clic (qui je crois ne fonctionne que pour les souris) et attaché mes soulignant méthode là. Maintenant, il fonctionne comme un charme.