我正在使用C#Windows窗体,该窗体执行以下操作:
我有一个RichTextbox
,用于显示文本文件的内容。
我设法建立了一个带有搜索按钮的搜索框,供用户在此文件中搜索特定文本。但是,我还想创建一个“查找”文本框和按钮,以允许用户用他/她在文本框中输入并单击“替换”按钮的新文本替换找到的文本。我该如何替换文字? ... 谢谢。
以下是搜索文本的代码:
private void buttonSearch_Click(object sender, EventArgs e)
{
int index = 0;
var temp = richTextArea.Text;
richTextArea.Text = "";
richTextArea.Text = temp;
while (index < richTextArea.Text.LastIndexOf(textBoxSearch.Text))
{
richTextArea.Find(textBoxSearch.Text, index, richTextArea.TextLength, RichTextBoxFinds.None);
richTextArea.SelectionBackColor = Color.Yellow;
index = richTextArea.Text.IndexOf(textBoxSearch.Text, index) + 1;
}
}
答案 0 :(得分:1)
在这里,我为您提供了有效的答案
public static void QuickReplace(RichTextBox rtb, String word, String word2)
{
rtb.Text = rtb.Text.Replace(word, word2);
}
private void button1_Click(object sender, EventArgs e)
{
QuickReplace(richTextBox1, textBox1.Text, textBox2.Text);
}
将richTextBox1
替换为RichTextBox
Control
,并用textBox1
textBox2
Controls
这将替换在RichTextBox
我专门针对这种操作编写了此代码。
如果您愿意,我可以提供代码来替换另一种形式的文本,例如记事本。
希望对您有所帮助:)
答案 1 :(得分:0)
如果要替换文本中所有出现的搜索词:
richTextArea.Text = richTextArea.Text.Replace(textBoxSearch.Text, replaceTextBox.Text);
答案 2 :(得分:0)
如果要替换所有搜索实例,请使用:
richTextArea.Text = richTextArea.Text.Replace(textBoxSearch.Text, replaceTextBox.Text);
如果您只想替换一个事件,那么
richTextArea.Text = richTextArea.Text.Remove(index, textBoxSearch.Text.Length);
richTextArea.Text = richTextArea.Text.Insert(index, replaceTextBox.Text);
答案 3 :(得分:0)
我添加了两个按钮,一个按钮用于将文件的内容加载到富文本框中,另一个按钮用于查找和替换文本,然后将替换后的内容再次写入文件。
private void Load_File_Contents_Click(object sender, EventArgs e)
{
try
{
//Below code will read the file and set the rich textbox with the contents of file
string filePath = @"C:\New folder\file1.txt";
richTextBox1.Text = File.ReadAllText(filePath);
}
catch (Exception ex)
{
lblError.Text = ex.Message;
}
}
private void ReplaceAndWriteToFile_Click(object sender, EventArgs e)
{
try
{
string filePath = @"C:\New folder\file1.txt";
//Find the "find" text from the richtextbox and replace it with the "replace" text
string find = txtFind.Text.Trim(); //txtFind is textbox and will have the text that we want to find and replace
string replace = txtReplace.Text.Trim(); //txtReplace is text and it will replace the find text with Replace text
string newText = richTextBox1.Text.Replace(find, replace);
richTextBox1.Text = newText;
//Write the new contents of rich text box to file
File.WriteAllText(filePath, richTextBox1.Text.Trim());
}
catch (Exception ex)
{
lblError.Text = ex.Message;
}
}