在另一个文本框中所选文本之前添加文本
本文关键字:文本 添加 另一个 | 更新日期: 2023-09-27 18:05:44
我在试图让一个文本框改变另一个文本框时遇到了问题。
解释:有两个richtextbox (rich1, rich2)。Rich1和rich2将有一个由用户选择的字符串(它们的服务器名)。表单上有一些按钮可以将rich1中的选定文本更改为不同的颜色,使用如下:
private void btnDarkBlue_Click(object sender, EventArgs e)
{
rich1.SelectionColor = Color.DarkBlue;
}
我想要发生的是当有人点击颜色按钮时,rich1中选择的文本与rich2中相同但我想在rich2中选择的文本之前添加文本,例如,如果有人从"Funhaus"中选择"nh"那么rich2将等于"Fu' color =12'nhaus"
所以最后,rich1将显示(带颜色):"Funhaus"。但是rich2会显示(没有颜色):"Fun' color =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
有完全相同的字符串,当你按下按钮。