2013-10-08 111 views
3

我是新来的c#,我试图从剪贴板读取所选文本的前景色。让我在背景上点亮一些。 我有一个windows窗体的textarea。当用户输入一些文本时,前3个字符是黑色的,后3个是红色的。现在我使用ranorex从窗体中拉出或读取对象并获取它们的属性。我可以阅读文本框中的文本内容,但是我想检查前三个字符是黑色的,而后面的三个字符是红色的。 例如:如果文本框中包含文字“welcom”,那么“wel”将是黑色的,“com”应该是红色的。是否可以从剪贴板读取对象属性

我以为我可以保存到剪贴板,并尝试从那里读取元素的颜色,但如果我错了,请纠正我。

只是为了澄清:我还必须提到,我试图从[JMTATextPane或JTextPane]的文本区域中读取文本,而不是从Rich文本框中读取文本。

+0

假设复制的文本来自RTF,您需要检索文本,将其放在RTF控件中然后执行解析(或创建自己的RTF解析器,btu可能是矫枉过正)。 这是假设它实际上也在复制格式。 –

+0

你可以看看'Clipboard'类,不过你可以当它从最初文本复制,以节省您自己的数据。 http://msdn.microsoft.com/en-us/library/System.Windows.Forms.Clipboard.aspx – mao47

回答

0

我推断你的TextBox是一个RichTextBox,对吗?因此,您可以将文本框的完整内容保存到剪贴板(如Clipboard.SetData(..,..))。

如果您想检查颜色,只需选择前三个字母并检查颜色。

richTextBox.Select(0,3); 
Color color = richTextBox.SelectionColor; 
// Do your checking stuff here 
+0

我还必须提到,我想读从[JMTATextPane或JTextPane的]的文字框中的内容,而不是从一个富文本框。 – user2859085