Comment mettre en évidence une sélection effectuée par programme dans une zone de texte Winforms

StackOverflow https://stackoverflow.com/questions/257209

Question

Je n'ai pas fait beaucoup de recherches ici, mais la chose intuitive ne marche pas:

private void SerachButton1_Click(object sender, EventArgs e)
{
   String serchTerm = searchTerm1.Text;
   String text = usualTextBox.Text;


   Int32 index = text.IndexOf(serchTerm);

   if (index >= 0)
   {
      usualTextBox.Select(index, serchTerm.Length);
   }
}
Les propriétés

SelectedText , SelectionLength et SelectionStart sont telles que je les attendais après l'appel de Select , mais elles ne sont pas visibles. sélection.

Qu'est-ce que je fais mal ici?

Éditer: j'ai également essayé RichTextBox . Lorsque je définis les couleurs d'arrière-plan et de texte pour la sélection, celle-ci s'affiche, mais elle ne se désélectionne pas automatiquement lorsque vous sélectionnez manuellement une autre partie du texte ou cliquez simplement sur une position dans le texte. Ces deux types de sélection sont-ils intrinsèquement différents et si vous sélectionnez par programme, vous devez également désélectionner par programme?

Était-ce utile?

La solution

Vous devez définir usualTextBox.HideSelection sur false afin que la sélection reste visible lorsque le focus n'est pas dans la zone TextBox .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top