如何在 Richtextbox C# 中复制一行

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

测试123

点击“复制”后:

测试123 测试 123

无论光标在哪里 将整行复制到下一行

我试过:

int selectionStart = richTextBox1.SelectionStart;
int lineStart = richTextBox1.GetFirstCharIndexOfCurrentLine();
int lineEnd = richTextBox1.GetFirstCharIndexFromLine(richTextBox1.GetLineFromCharIndex(selectionStart) + 1);

if (lineEnd == -1)
{
    // Last line in the RichTextBox
    lineEnd = richTextBox1.Text.Length;
}

string selectedLine = richTextBox1.Text.Substring(lineStart, lineEnd - lineStart);

// Insert the duplicated line after the current line
richTextBox1.Text = richTextBox1.Text.Insert(lineEnd, Environment.NewLine + selectedLine);

// Move the cursor to the end of the duplicated line
richTextBox1.SelectionStart = lineEnd + Environment.NewLine.Length;
            richTextBox1.ScrollToCaret();
c# winforms richtextbox
1个回答
0
投票
int selectionStart = richTextBox1.SelectionStart;
int lineStart = richTextBox1.GetFirstCharIndexOfCurrentLine();
int lineEnd = richTextBox1.GetFirstCharIndexFromLine(richTextBox1.GetLineFromCharIndex(selectionStart) + 1);
if (lineEnd == -1)
{
    lineEnd = richTextBox1.Text.Length;
}
string selectedLine = richTextBox1.Text.Substring(lineStart, lineEnd - lineStart);
richTextBox1.Text = richTextBox1.Text.Insert(lineEnd, Environment.NewLine + selectedLine);
richTextBox1.SelectionStart = lineStart;
richTextBox1.SelectionLength = selectedLine.Length + Environment.NewLine.Length;
richTextBox1.ScrollToCaret();
© www.soinside.com 2019 - 2024. All rights reserved.