C# RichTextBox编辑的一段文本怎样使用空字符替换,使空文本长度和被替换的文本长度一致 不是很明白需求,这样?richTextBox1.SelectedText = string.Empty.PadLeft(richTextBox1.SelectionLength, ' '); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String..::.PadRight 方法 (Int32, Char) 參數totalWidth型別:System..::.Int32產生的字串中的字元數,等於原始字元加上任何其他填補字元的數目。 paddingChar型別:System..::.CharUnicode 填補字元。 傳回值型別:System..::.String新的 String,對等於這個執行個體,但是靠左對齊,並在右側填補必要的 paddingChar 字元,以建立 totalWidth 的長度。如果 totalWidth 小於這個執行個體的長度,則為與這個執行個體相同的新 String。 範例string str = "forty-two";char pad = '.';Console.WriteLine(str.PadRight(15, pad)); // Displays "forty-two......".Console.WriteLine(str.PadRight(2, pad)); // Displays "forty-two". this.rtbBlnrTemp.Text= string.Empty.PadRight(this.rtbBlnr.SelectionLength, ' ');这样做文本长度是够了,但是rtbBlnrTemp没有和rtbBlnr一样的行数,达不到用空格字符取代显示的效果;如:替换前:“该数组中的每个元素成为文本框控件中的一行文本。如果文本框控件的 Multiline 属性设置为 true,并且文本中出现换行符,则换行符后的文本被添加到该数组的一个新元素中,并显示在另一行上。”替换后:“ 并显示在另一行上。” StringBuilder sb=new StringBulder();sb.Append(' ',intLenght);这里可以产生intLenght长度的空格字符串再使用string.Replace方法替换就行了 告诉我这个例子中,你的“换行符”在哪?3楼的需求明显与你顶楼的需求不一致,把你的需求描述清楚,“编辑的一段文本”指的是什么,当前被选中的文本,还是当前控件中所有文本?richTextBox1.SelectedText = Regex.Replace(richTextBox1.SelectedText, @"(?m).", " "); 具体需求是:把richTextBox1的内容全部复制到richTextBox2,选中richTextBox1的部分内容,使richTextBox2的相关部分使用长度相等的空格替换,并且要求richTextBox1和richTextBox2的行数要一致,文本长度一致 我用下面的代码已经实现了选中的部分红色显示,但是就是把选中的部分用空格替换不了,不知道是为什么?很奇怪! StringBuilder sb = new StringBuilder(); int length = this.rtbBlnr.SelectionLength; sb.Append(' ', length); //MessageBox.Show("空格长度"+sb.Length.ToString()+":"+sb.ToString()); this.rtbBlnrTemp.Rtf = this.rtbBlnr.Rtf; int G_int_index = 0; if ((G_int_index = this.rtbBlnrTemp.Text.IndexOf(this.rtbBlnr.SelectedText, G_int_index)) == -1) { MessageBox.Show("没有找到结果!"); G_int_index = 0; } else { this.rtbBlnrTemp.Select(G_int_index, length); this.rtbBlnrTemp.SelectionColor = Color.Red; this.rtbBlnrTemp.Text.Replace(this.rtbBlnrTemp.SelectedText, sb.ToString()); } 这样的交叉表怎么做RDLC 有没有什么好的C#视频教程 窗体中添加控件,哪个方法好? .net部署问题,望各位高手不吝赐教! c#中 调用带输出参数output的存储过程,如何获得该返回值???? 关于消息委托! 异常处理问题 C#高手请进~~~~~~~ 为什么studio示例中的oleDbDataAdapter1.Fill("***")时不需oleDbConnection1.Open() c#中如何使用ffmpeg实现视频截图 .net加密 一个SQL Server数据库语法的问题
totalWidth
型別:System..::.Int32產生的字串中的字元數,等於原始字元加上任何其他填補字元的數目。 paddingChar
型別:System..::.CharUnicode 填補字元。 傳回值
型別:System..::.String新的 String,對等於這個執行個體,但是靠左對齊,並在右側填補必要的 paddingChar 字元,以建立 totalWidth 的長度。如果 totalWidth 小於這個執行個體的長度,則為與這個執行個體相同的新 String。 範例string str = "forty-two";
char pad = '.';Console.WriteLine(str.PadRight(15, pad)); // Displays "forty-two......".
Console.WriteLine(str.PadRight(2, pad)); // Displays "forty-two".
这样做文本长度是够了,但是rtbBlnrTemp没有和rtbBlnr一样的行数,达不到用空格字符取代显示的效果;
如:
替换前:
“该数组中的每个元素成为文本框控件中的一行文本。如果文本框控件的 Multiline 属性设置为 true,并且文本中出现换行符,则换行符后的文本被添加到该数组的一个新元素中,并显示在另一行上。
”
替换后:
“
并显示在另一行上。
”
sb.Append(' ',intLenght);
这里可以产生intLenght长度的空格字符串
再使用string.Replace方法替换就行了
StringBuilder sb = new StringBuilder();
int length = this.rtbBlnr.SelectionLength;
sb.Append(' ', length);
//MessageBox.Show("空格长度"+sb.Length.ToString()+":"+sb.ToString());
this.rtbBlnrTemp.Rtf = this.rtbBlnr.Rtf;
int G_int_index = 0;
if ((G_int_index = this.rtbBlnrTemp.Text.IndexOf(this.rtbBlnr.SelectedText, G_int_index)) == -1)
{
MessageBox.Show("没有找到结果!");
G_int_index = 0;
}
else
{
this.rtbBlnrTemp.Select(G_int_index, length);
this.rtbBlnrTemp.SelectionColor = Color.Red;
this.rtbBlnrTemp.Text.Replace(this.rtbBlnrTemp.SelectedText, sb.ToString());
}