【发布时间】:2014-03-24 21:23:50
【问题描述】:
我是 C# 的初学者,我正在开发一个小型 Windows 窗体应用程序,这是一个可以控制我的 RichTextBox1 文本的文本编辑器。 (更改字体类型、字体大小等)我想为我的项目创建一个查找和替换对话框。它有一个 TextBox (txtText),它的文本应该在 RichTextBox1.Text 中检查,还有一个“查找”按钮 (btnFind) 控件。我有代码,它检查并选择RichTextBox1.Text 中的下一个文本,它与光标位置之后的txtText 的文本匹配:
public void FindNextText(string Text)
{
int TextSelectionStartIndex;
int CursorPosition = RichTextBox1.SelectionStart;
if (RichTextBox1.SelectedText == Text)
{
TextSelectionStartIndex= RichTextBox1.Text.IndexOf(Text, CursorPosition + 1);
}
else
{
TextSelectionStartIndex= RichTextBox1.Text.IndexOf(Text, CursorPosition);
}
RichTextBox1.Select(TextSelectionStartIndex, Text.Length);
}
唯一的问题是,此方法在我的MainForm 类中,而单击事件调用此方法的查找按钮在我的FindAndReplaceForm 类中。
我试过这段代码来调用它:
public partial class FindAndReplaceForm : Form
{
//...
private void btnFind_Click(object sender, EventArgs e)
{
MainForm mf = new MainForm();
mf.FindNextText(txtText.Text);
}
//...
}
但是如果我这样做了,新的 MainForm 的方法将被调用并执行,并且不会在原始表单的RichTextBox1.Text 中选择任何内容。
谁能帮助我如何在不创建类的新对象的情况下调用原始MainForm 的这个方法?
是否可以不将MainForm 设置为父表单,将FindAndReplaceForm 设置为子表单?
感谢您的任何帮助!
【问题讨论】:
标签: c# class text methods call