0

请任何人向我提出一些关于如何在 C# 记事本程序中执行 find/findNext 操作的想法。我想在 RichTextBox 中搜索所有出现的字符串,并在单击 findNext 按钮时突出显示每个出现。

4

2 回答 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。您看到的一些属性如SelectionStartSelectionLength和本质上是、和属性Content的别名。TextBoxSelectionStartSelectionLengthText

于 2012-08-01T19:15:58.043 回答