Функции поиска в редакторе RTF - PullRequest
1 голос
/ 04 декабря 2011

Я создаю редактор RTF, и мне нужна помощь с функциями поиска. Я уже создал код поиска и замены, но не могу понять, как кодировать код find next и replace all. Любая помощь будет высоко ценится. Ниже приведен код, который у меня уже есть. (Я использую Visual Studio 2010 C #)

    private void buttonFind_Click(object sender, EventArgs e)
    {

        RichTextBox frm1TB = ((Form1)this.Owner).rTB;

        int foundAt;
        foundAt = frm1TB.Text.IndexOf(txtSearch.Text);
        if (foundAt == -1)
        {
            MessageBox.Show("Not Found");
        }
        else
        {

            frm1TB.SelectionStart = foundAt;
            frm1TB.SelectionLength = txtSearch.TextLength;
            frm1TB.Focus();
            btnFindnext.Enabled = true;
            btnReplaceall.Enabled = true;
            btnReplace.Enabled = true;

        }

    }

    private void buttonfindNext_Click(object sender, EventArgs e)
    {

    }

    private void buttonreplace_Click(object sender, EventArgs e)
    {
        RichTextBox frm1TB = ((Form1)this.Owner).rTB;
        btnFind_Click(sender,e);

        frm1TB.SelectedText = txtReplace.Text;         


        }

    private void buttonreplaceAll_Click(object sender, EventArgs e)
    {

    }

Ответы [ 2 ]

2 голосов
/ 04 декабря 2011

вы можете использовать эту перегрузку для indexOf, определите startIndex как индекс последнего найденного результата + длину строки поиска.теперь indexOf даст вам расположение строки в txtSearch.Text в поле RTF после последнего вхождения.

для замены всего лишь Replace

0 голосов
/ 04 декабря 2011

Я думаю, вы можете просто к этому:

frm1TB.Rtf = frm1TB.Rtf.Replace("replace what", "with this");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...