- 将选定的行类型 [0]、[2]、[4] Richtext1 复制到剪贴板:
类型 1
产品描述 1
类型 2
产品描述2
类型 3
产品描述 3
- 将类型为 [0]、[2]、[4] 的行粘贴到具有选定类型 1、2、3 的 Richtext2:
新品一
新产品2
新产品3
新品4
新品5
新品6
我的代码:有效但删除了所有 richtext 2,感谢您的帮助。
string[] line = Clipboard.GetText().Split('\n'); // richtext1 copy lines to clipboard
//string[] line = richTextBox1.Lines;
//string line1 = richTextBox2.Text;
string line1 = richTextBox2.SelectedText;
richTextBox2.Text = line1.Replace("\n", "\n\n").Insert(0, "\n"); // Add new empty line in richtext
string[] line2 = richTextBox2.Lines;
RichTextBox richText = new RichTextBox();
for (int i = 0; i < line.Length; i++)
{
int x = i;
if ((x % 2) == 0) // define odd line
{
//string l1 = line[i];
richText.Text += "\n" + line[i];
}
else
{
richText.Text += "\n" + line2[i];
}
richTextBox2.Text = richText.Text;
}
- 在 Richtext2 上插入后:(不影响产品 4、5、6)
类型 1
新品一
Type2
新产品2
Type3
新产品3
新品4
新品5
新品6
在您的实施中
richTextBox2
每次迭代都会重置。
var line = Clipboard.GetText().Split('\n');
var selectedText = richTextBox2.SelectedText;
var selectionStart = richTextBox2.SelectionStart;
var textBuilder = new StringBuilder(selectedText);
textBuilder.AppendLine();
for (int i = 0; i < line.Length; i++)
{
int x = i;
if ((x % 2) == 0)
{
textBuilder.AppendLine(line[i]);
}
else
{
textBuilder.AppendLine(line2[i]);
}
}
richTextBox2.Text = richTextBox2.Text.Substring(0, selectionStart)
+ textBuilder.ToString()
+ richTextBox2.Text.Substring(selectionStart + selectedText.Length);
richTextBox2.SelectionStart = selectionStart + textBuilder.Length;
应该这样做