我目前正在使用C#
在Visual Studio 2008中开发一个小型RTF编辑器我已经完成了几乎所有的接受第二个表单上的查找/查找下一个按钮
Form1包含一个富文本框
form2包含要搜索的文本的文本框和两个按钮 - 查找和查找下一个
当您单击“查找”时,您在form2上的文本框中输入的文本将在form1
中突出显示我花了好几个小时试图解决这个问题而无法得出结论
有人能帮我一把吗? 提前致谢
我设法找到了一位朋友寻求帮助,现在这就是我的查找按钮,我不确定这是否是最好的方法。
我知道有一个richtextbox.find方法,但我不知道如何使用它 `public partial class frmFind:Form { frmRTFEditor frmRTFEditor;
public frmFind()
{
InitializeComponent();
}
public frmFind(frmRTFEditor form)
{
InitializeComponent();
frmRTFEditor = form;
this.TopMost = true;
}
private void cmdFind_Click(object sender, EventArgs e)
{
lblMatch.Visible = false;
try
{
if (txtSearch.Text == "")
{
lblMatch.Visible = true;
}
else
{
int StartPosition;
StringComparison SearchType;
SearchType = StringComparison.OrdinalIgnoreCase;
StartPosition = frmRTFEditor.rtbDoc.Text.IndexOf(txtSearch.Text, SearchType);
if (StartPosition < 0)
{
lblMatch.Visible = true;
}
else
{
frmRTFEditor.rtbDoc.Select(StartPosition, txtSearch.Text.Length);
frmRTFEditor.rtbDoc.ScrollToCaret();
frmRTFEditor.Focus();
cmdFindNext.Enabled = true;
}
}
}
catch (Exception)
{
lblMatch.Visible = true;
cmdFindNext.Enabled = false;
}
}`
答案 0 :(得分:1)
从您问题的“声音”中我怀疑您正在尝试编写搜索并突出显示Form2背后的代码中的代码,或者您可能尝试在某处创建循环引用。
我只使用Form2作为UI。从Form1创建它的实例,显示Form2,将输入值读回到Form1中的代码。从那里,您可以访问form1上富文本框中的所有文本。
查找搜索文本的最快捷/最简单的方法可能是包含对richTextBox1.Text.IndexOf(..)
的调用的循环