假设WinForms:尝试:将RichTextBox与一个关键Down活动手,如:
附录:
private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.V)
{
richTextBox1.Text += (string)Clipboard.GetData("Text");
e.Handled = true;
}
}
[Edit]
在目前的插入点(选举开始)中,向RichTextBox增加Clipster RTF:
private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.V)
{
// suspend layout to avoid blinking
richTextBox2.SuspendLayout();
// get insertion point
int insPt = richTextBox2.SelectionStart;
// preserve text from after insertion pont to end of RTF content
string postRTFContent = richTextBox2.Text.Substring(insPt);
// remove the content after the insertion point
richTextBox2.Text = richTextBox2.Text.Substring(0, insPt);
// add the clipboard content and then the preserved postRTF content
richTextBox2.Text += (string)Clipboard.GetData("Text") + postRTFContent;
// adjust the insertion point to just after the inserted text
richTextBox2.SelectionStart = richTextBox2.TextLength - postRTFContent.Length;
// restore layout
richTextBox2.ResumeLayout();
// cancel the paste
e.Handled = true;
}
}
[End Edit]
注0: 案文is中的过去,将假设RichTextBox的现行风格:如果你有“彩色”到“蓝色”:案文中的过去为蓝色。
附注1: 这是我很快聚集在一起的一件事,仅经过几次测试,用WordPad为纸板制造了一些多彩和杂杂交式的RTF:然后在运行时间将它冲入RichTextBox1:它确实使所有的肤色、冷漠等等消失。
由于它没有经过充分测试,使用警告。
附注2: 这显然不会处理通过门图插入或穿梭的情况。
欢迎这一答复的所有论点,如果它不“在......”时,将立即予以放弃。