请任何人向我提出一些关于如何在 C# 记事本程序中执行 find/findNext 操作的想法。我想在 RichTextBox 中搜索所有出现的字符串,并在单击 findNext 按钮时突出显示每个出现。
问问题
3644 次
2 回答
1
您可以查看以下代码:http ://www.dreamincode.net/code/snippet2466.htm并使用 C# 在 TextBox/Label/RichTextBox 中突出显示文本
于 2011-07-30T11:39:24.577 回答
0
我在 C# 中创建了一个记事本克隆,它实现了与 Window 记事本相同的 find / findnext 操作。你可以在这里找到源代码:
http://www.simplygoodcode.com/2012/04/notepad-clone-in-net-winforms.html
以下是该函数的代码在应用程序中的样子:
private string _LastSearchText;
private bool _LastMatchCase;
private bool _LastSearchDown;
public bool FindAndSelect(string pSearchText, bool pMatchCase, bool pSearchDown) {
int Index;
var eStringComparison = pMatchCase ? StringComparison.CurrentCulture : StringComparison.CurrentCultureIgnoreCase;
if (pSearchDown) {
Index = Content.IndexOf(pSearchText, SelectionEnd, eStringComparison);
} else {
Index = Content.LastIndexOf(pSearchText, SelectionStart, SelectionStart, eStringComparison);
}
if (Index == -1) return false;
_LastSearchText = pSearchText;
_LastMatchCase = pMatchCase;
_LastSearchDown = pSearchDown;
SelectionStart = Index;
SelectionLength = pSearchText.Length;
return true;
}
此方法在主窗体上。它解释了“查找”对话框中的选项。它存储参数值以便以后能够执行“查找下一个”/F3。您看到的一些属性如SelectionStart
、SelectionLength
和本质上是、和属性Content
的别名。TextBox
SelectionStart
SelectionLength
Text
于 2012-08-01T19:15:58.043 回答