在C#的Windows窗体上有一个richTextBox。我正在通过find方法寻找一个特殊的字符串。 例如,我正在寻找“猫”。文本中的字符串。如你所知,可能有许多字符串依赖于猫:猫或猫或猫或猫或猫或猫。或猫,或猫:或猫\甚至甚至类别或催化剂或Catia和其他类型的东西。我怎样才能将猫看成像猫,猫或猫这样的动物。或猫或猫或猫等。我可以使用任何角色吗?类似于'猫&#39?;或者'猫*'寻找所有人物。
这是我使用的方法:
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
{
if (e.Node.Checked)
{
CheckedNodes.Add(e.Node);
}
else
{
CheckedNodes.Remove(e.Node);
}
richTextBox1.SelectAll();
richTextBox1.SelectionBackColor = Color.White;
richTextBox1.DeselectAll();
for (int counter = 0; counter < CheckedNodes.Count; counter++)
{
int location = 0;
while (location != -1)
{
location = FindMyText(" " + CheckedNodes[counter].Text + "", location + 1, richTextBox1.TextLength);
if (location != -1)
{
FindMyText(CheckedNodes[counter].Text, location + 1, richTextBox1.TextLength);
richTextBox1.SelectionBackColor = CheckedNodes[counter].ForeColor;
}
}
}
richTextBox1.DeselectAll();
}
public int FindMyText(string searchText, int searchStart, int searchEnd)
{
// Initialize the return value to false by default.
int returnValue = -1;
// Ensure that a search string and a valid starting point are specified.
if (searchText.Length > 0 && searchStart >= 0)
{
// Ensure that a valid ending value is provided.
if (searchEnd > searchStart || searchEnd == -1)
{
// Obtain the location of the search string in richTextBox1.
int indexToText = richTextBox1.Find(searchText, searchStart, searchEnd, RichTextBoxFinds.MatchCase);
// Determine whether the text was found in richTextBox1.
if (indexToText >= 0)
{
// Return the index to the specified search text.
returnValue = indexToText;
}
}
}
return returnValue;
}
答案 0 :(得分:1)
在这里你可以找到一个增强的富文本框控件,这是它在VB.net中的唯一问题,
http://www.codeproject.com/Articles/32793/RichTextBox-Control-with-Find-functionality
但它解决了你的问题。