【问题标题】:problem with code. Searching text in a rtb c#代码问题。在 rtb c# 中搜索文本
【发布时间】:2010-03-01 02:27:13
【问题描述】:

我有 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();
            }

请帮忙!我我的截止日期是明天 2 日

【问题讨论】:

标签: c# forms object find richtextbox


【解决方案1】:

Owner 属性将为null,除非您手动设置它或调用采用Form 参数的Show 重载。

您需要将显示“查找”表单的代码更改为form.Show(this)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-24
    • 2010-09-27
    • 1970-01-01
    • 2011-11-09
    • 2016-09-18
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    相关资源
    最近更新 更多