C# 从 richtext1 复制粘贴行到 richtext2

问题描述 投票:0回答:1

- 将选定的行类型 [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

c# winforms copy paste richtext
1个回答
1
投票

在您的实施中

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;

应该这样做

© www.soinside.com 2019 - 2024. All rights reserved.