我有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个明天
答案 0 :(得分:1)
Owner
属性为null
,除非您手动设置或调用带有Show
参数的Form
重载。
您需要将显示“查找”表单的代码更改为form.Show(this)
。