Comment mettre en évidence une sélection effectuée par programme dans une zone de texte Winforms
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?
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
.