проблема с кодом. Поиск текста в RTB C # - PullRequest
0 голосов
/ 28 февраля 2010

У меня есть 2 формы

Один включает richtextbox, другой используется для поиска текста в этом rtb

Мой код показывает ошибку, и я не знаю, как ее исправить.

Это строка, которая показывает ошибку

 RichTextBox box = ((Form1)base.Owner).rtxtEditor;

Он говорит: «Ссылка на объект не установлена ​​для экземпляра объекта».

Это весь мой код.

private void frmFind_Shown(object sender, EventArgs e)
    {
        this.txtSearch.Focus();
    }

    private void cmdFind_Click(object sender, EventArgs e)
    {

        RichTextBox box = ((Form1)base.Owner).rtxtEditor;
        int start = box.Find(this.txtSearch.Text, 0);
        if (start == -1)
        {
            this.lblMatch.Text = "No match found";
            this.cmdFindNext.Enabled = false;
        }
        else
        {
            this.lblMatch.Text = "";
            box.Select(start, this.txtSearch.Text.Length);
            this.cmdFindNext.Enabled = true;
            box.ScrollToCaret();
            ((Form1)base.Owner).Focus();
        }
    }

    private void cmdFindNext_Click(object sender, EventArgs e)
    {

            RichTextBox box = ((Form1)base.Owner).rtxtEditor;
            int start = box.Find(this.txtSearch.Text, ((Form1 base.Owner).rtxtEditor.SelectionStart + 1, 0);
            if (start == -1)
            {
                this.lblMatch.Text = "No more matches";
                this.cmdFindNext.Enabled = false;
            }
            else
            {
                box.Select(start, this.txtSearch.Text.Length);
                box.ScrollToCaret();
                ((Form1)base.Owner).Focus();
            }

Пожалуйста, помогите! I Мой срок - 2 завтра

1 Ответ

1 голос
/ 28 февраля 2010

Свойство Owner будет null, если вы не установите его вручную или не вызовете перегрузку Show, которая принимает параметр Form.

Вам нужно изменить код, который показывает форму поиска, на form.Show(this).

...