2012-06-04 64 views
1

我有一个笔记程序,用于在工作时记录案例,但是当我复制并粘贴来自其他窗口的数据时,它将其粘贴到网站的格式化中。是否有一个富文本框(通常是文本框)的设置,用于删除任何格式并仅将文本放入文本框中?如果不行,我必须使用一种方法来查看剪贴板的内容,并将字符串发送到特定的字体/大小等。如何自动格式化粘贴到富文本框中的文本?

+0

你可以写你自己的方法,并让它可能是双击事件。或者你甚至可以做'Ctrl + V'组合按键事件。 RTB没有设置删除格式。当你说格式化时,你的意思是什么? – Botonomous

+0

我的意思是,当你在网站上复制一些大而粗体的字母,然后将其粘贴到表单中仍然有大的粗体字母时,我希望它是一个标准文本,而不是粗体和粗体。听起来就像我将不得不作出格式化的方法。 –

+0

像Magnus下面说的那样,将捕获剪贴板保存为字符串或Var,然后将该字符串移至您的richtextbox。这应该工作。 - 现在测试 - – Botonomous

回答

1

您应该能够通过指定TextDataFormat获得格式化字符串,并将其设置为Text

var stringToPasteIn = Clipboard.GetText(TextDataFormat.Text); 

或者让RichTextBox为你做它自动地使用其DataFormats选项:

DataFormats.Format myFormat = DataFormats.GetFormat(DataFormats.Text); 
richTextBox1.Paste(myFormat); 
+0

这会工作,但我认为更难的问题是检测粘贴发生的时间。看到这篇文章,以帮助你:http://stackoverflow.com/questions/5618162/detecting-if-paste-event-occurred-inside-a-rich-text-box –

+0

我不认为他需要检测当粘贴发生时。或者,OP可以简单地在粘贴发生时进行控制;如在richtextbox双击事件等...这就是我会推荐。 – Botonomous