我为 RichTextBox 创建了一个 ToolStripMenuItem。在其 Click 事件中,我将剪贴板中的一些文本粘贴到 RichTextBox 中。
问题在于,在表单设计器中,RichTextBox 的
ForeColor
设置为 Color.Yellow
,但是如果剪贴板中的文本包含不同的颜色,则文本的某些部分将不会全部可见,因为 BackColor RichTextBox 是黑色的。这是我粘贴文本的事件:
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
// Handle the Paste event
richTextBox1.Paste();
// Set the desired formatting (e.g., yellow color) for the pasted text
richTextBox1.SelectionColor = Color.Yellow;
}
我尝试添加行:
richTextBox1.SelectionColor = Color.Yellow;
但是并没有解决任何问题。
这是我粘贴到 RichTextBox 中的文本的屏幕截图示例。剪贴板中的文本部分为蓝色和棕色。
棕色被黑色的背景吞没了,蓝色很难看出来。我希望一切都是黄色的。
如何更改我的代码,以便无论我将什么文本粘贴到 RichTextBox 中,它都会使用 RichTextBox 进行着色
ForeColor
?
将文本粘贴到 RichTextBox 中时,插入符号将移动到新文本的末尾。
设置
SelectionColor
不会执行任何操作,因为未选择任何内容。您可以在粘贴新文本之前存储插入符号位置,然后从当前位置(指向粘贴文本的末尾)减去该位置,以确定粘贴文本的长度。
然后仅选择该块,以更改其颜色。例如:
var previousStartPosition = richTextBox1.SelectionStart;
richTextBox1.Paste();
var newTextLength = richTextBox1.SelectionStart - previousStartPosition;
richTextBox1.Select(previousStartPosition, newTextLength);
richTextBox1.SelectionColor = Color.Yellow; // Or richTextBox1.ForeColor