如何在Winforms TextBox中以程序方式突出显示所选内容

5

我在这里没有进行太多的研究,但直觉上的事情并不起作用:

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

SelectedTextSelectionLengthSelectionStart 属性在调用 Select 后符合我的预期,但没有可见的选定内容。

我做错了什么?

编辑:我也尝试过使用 RichTextBox。当我为所选内容设置背景和文本颜色时,它会显示出来,但是当您手动选择文本的另一部分或仅单击文本中的某个位置时,它不会自动取消选择。这两种类型的选择本质上有所不同,如果您通过编程方式进行选择,则还必须通过编程方式进行取消选择吗?

1个回答

9
您需要将usualTextBox.HideSelection设置为false,这样当焦点不在TextBox中时,选择内容仍然可见。

嗯,我在WPF TextBox中没有看到这个属性。 - Dmitri Nesteruk
我并不感到惊讶,WPF 和 WinForms 的做法是不同的。 - Jeff Yates

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接