Détecter du texte a été sélectionné dans une zone de texte
J'ai mis en place une application bloc-notes en c#,tous l'ont fonctionne parfaitement,il n'y a qu'une chose que je ne peut pas mettre en œuvre exactement.il y a quelques menuitems dans le modifier menu déroulant,mais leur propriété enabled doit changer en fonction de la situation de la zone de texte,j'ai un problème avec deux situations et je suis à la recherche d'un événement afin de changer leur propriété enabled dans ce cas le gestionnaire d'événements,ici, est le problème:
2)Lorsque du texte est sélectionné dans la zone de texte,supprimer,copier et coller des options doit être activé.comment la détecter?J'ai testé texchanged l'événement, j'ai écrit un état comme le code ci-dessous mais il n'a pas de travail,juste le presse-papiers qui fonctionne bien:
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox1.SelectionLength> 0)
button1.Enabled = false;
if (Clipboard.ContainsText())
button2.Enabled = false;
}
Comment dois-je résoudre mon problème,j'ai utiliser une zone de texte pas un richtextbox.
Toutes les suggestions seront appréciées.
Merci beaucoup
source d'informationauteur | 2013-02-11
Vous devez vous connecter pour publier un commentaire.
À savoir la sélection
Pour le contenu du presse-papiers,
utilisation
Vérifier le contenu du presse-papiers,
Ceci est mis en œuvre dans le code. Vous pouvez l'utiliser directement comme ci-dessus
Le plus important, n'oubliez pas
C'est le code complet avec élément de menu
Pour la Deuxième partie de votre question:
A fonctionné pour moi.
Bien, à mon avis, la meilleure façon de faire c'est de définir l'activation/la désactivation de la méthode:
et de l'attacher à la
editMenuItem.DropDownOpened
événement (lors de l'utilisation de Formulaires) oueditMenuItem.SubmenuOpened
événement (lors de l'utilisation de WPF; Vous pouvez également utiliserRoutedEventArgs
au lieu deEventArgs
dans ce cas).Alternativement, si Vous êtes en utilisant WPF, Vous pourriez faire usage de la
textBox1.SelectionChanged
événement. Il n'est pas présent dans les Formes, de sorte que dans ce cas, Vous devriez probablement utiliser une combinaison detextBox1.MouseUp
ettextBox1.KeyUp
événements.