在另一个文本框中的选定文本之前添加文本
Add text before selected text in another textbox
我在尝试让一个文本框更改另一个文本框时遇到问题。
说明:
有两个 richTextBox(rich1,rich2)。
rich1 和 rich2 将有一个由用户选择的字符串(他们的服务器名称)。表单上有一些按钮可以使用以下方法将 rich1 中的选定文本更改为不同的颜色:
private void btnDarkBlue_Click(object sender, EventArgs e)
{
rich1.SelectionColor = Color.DarkBlue;
}
我想要发生的是当有人点击颜色按钮时,rich1 中的选定文本与 rich2 中的相同,但我想在 rich2 中的选定文本之前添加文本,例如,如果有人选择 [= "Funhaus" 中的 22=] 那么 rich2 将等于 "Fu\colour=12\nhaus"
所以最后,rich1 会显示(着色):"Funhaus"。但是 rich2 会显示(没有着色):"Fun\colour=12haus",因为用户已决定将单词 "haus" 更改为 DarkBlue。这是我试过的一些代码:
rich2.SelectedRtf = rich1.SelectedRtf;
我假设因为它们都等于相同的文本,所以这会起作用,但是这似乎只是将 rich1 的选定文本添加到带有格式的 rich2 的开头。
private void rich1_SelectionChanged(object sender, EventArgs e)
{
rich2.SelectionLength = rich1.SelectionLength;
rich2.SelectionStart = rich1.SelectionStart;
}
private void button2_Click(object sender, EventArgs e)
{
rich2.SelectedRtf = @"{\rtf1\ansi{colour=12}" + rich2.SelectedRtf;
rich1.ForeColor = Color.Blue;
}
如果要将格式化文本插入 RichTextBox
控件而不更改其其他格式,请使用 SelectedText 属性,然后仅应用格式:
private void btnDarkBlue_Click(object sender, EventArgs e)
{
rich1.SelectionColor = Color.DarkBlue;
rich2.SelectionStart = rich1.SelectionStart;
rich2.SelectionLength = 0;
rich2.SelectedText = whateverTextYouLike;
rich2.SelectionColor = Color.DarkBlue; //<-- apply any format if you like only after setting selected text
}
如果按下按钮时 rich1
和 rich2
具有完全相同的字符串,这应该有效。
我在尝试让一个文本框更改另一个文本框时遇到问题。
说明: 有两个 richTextBox(rich1,rich2)。 rich1 和 rich2 将有一个由用户选择的字符串(他们的服务器名称)。表单上有一些按钮可以使用以下方法将 rich1 中的选定文本更改为不同的颜色:
private void btnDarkBlue_Click(object sender, EventArgs e)
{
rich1.SelectionColor = Color.DarkBlue;
}
我想要发生的是当有人点击颜色按钮时,rich1 中的选定文本与 rich2 中的相同,但我想在 rich2 中的选定文本之前添加文本,例如,如果有人选择 [= "Funhaus" 中的 22=] 那么 rich2 将等于 "Fu\colour=12\nhaus"
所以最后,rich1 会显示(着色):"Funhaus"。但是 rich2 会显示(没有着色):"Fun\colour=12haus",因为用户已决定将单词 "haus" 更改为 DarkBlue。这是我试过的一些代码:
rich2.SelectedRtf = rich1.SelectedRtf;
我假设因为它们都等于相同的文本,所以这会起作用,但是这似乎只是将 rich1 的选定文本添加到带有格式的 rich2 的开头。
private void rich1_SelectionChanged(object sender, EventArgs e)
{
rich2.SelectionLength = rich1.SelectionLength;
rich2.SelectionStart = rich1.SelectionStart;
}
private void button2_Click(object sender, EventArgs e)
{
rich2.SelectedRtf = @"{\rtf1\ansi{colour=12}" + rich2.SelectedRtf;
rich1.ForeColor = Color.Blue;
}
如果要将格式化文本插入 RichTextBox
控件而不更改其其他格式,请使用 SelectedText 属性,然后仅应用格式:
private void btnDarkBlue_Click(object sender, EventArgs e)
{
rich1.SelectionColor = Color.DarkBlue;
rich2.SelectionStart = rich1.SelectionStart;
rich2.SelectionLength = 0;
rich2.SelectedText = whateverTextYouLike;
rich2.SelectionColor = Color.DarkBlue; //<-- apply any format if you like only after setting selected text
}
如果按下按钮时 rich1
和 rich2
具有完全相同的字符串,这应该有效。