2008-11-02 8 views
4

Je n'ai pas allé dans beaucoup de recherches, mais la chose intuitive ne fonctionne pas:Comment puis-je souligner une sélection effectuée par programme dans une zone de texte Winforms

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); 
    } 
} 

SelectedText, SelectionLength et SelectionStart propriétés sont comme je l'attends eux après Select est appelé, mais il n'y a pas de sélection visible.

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, il s'affiche, mais il ne désélectionne pas automatiquement lorsque vous sélectionnez manuellement une autre partie du texte ou que vous 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 programmation?

Répondre

7

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

+0

Merci! Tout fonctionne maintenant comme prévu. – axk

+0

Bienvenue. :) –

+0

Umm, je ne vois pas cette propriété dans un WPF TextBox –