Wie markiere ich eine Auswahl programmatisch in einem WinForms TextBox gemacht
Frage
Ich habe nicht in viel Forschung gegangen, aber diese intuitive Sache nicht funktioniert:
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
und SelectionStart
Eigenschaften sind, wie ich sie erwarten, nachdem Select
genannt wird, aber es gibt keine sichtbare Auswahl.
Was bin ich falsch hier?
Edit: Ich habe auch versucht RichTextBox
. Wenn ich Hintergrund- und Textfarben für die Auswahl festgelegt zeigt es auf, aber es wird nicht automatisch deaktivieren, wenn Sie manuell einen anderen Teil des Textes auswählen oder auf einer Position, klicken Sie einfach in Text. Sind diese beiden Arten von Auswahl von Natur aus unterschiedlich und wenn Sie programmatisch wählen Sie müssen auch programmatisch deaktivieren?
Lösung
Sie müssen usualTextBox.HideSelection
einstellen false
so dass die Auswahl sichtbar bleibt, wenn der Fokus nicht in der TextBox
ist.