在TextBox中包含SelectionColor

时间:2013-03-13 15:46:26

标签: c# winforms

我需要 TextBox 类中名为 SelectionColor 的属性,对于一个简单的语法高亮显示器 - 我不能直接使用RichTextBox - 它会导致太多问题,那就是为什么我试着这样做。

有没有办法让TextBox可以使用该属性? 如果不可能,我会尝试编写自己的,但我需要一个关于如何操作的想法,基本上它是如何工作的 - 它是基于在原始文本上绘制字符串吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

基本上,将TextBox用于纯文本以外的任何内容都是一个坏主意。首先,您最终将获得一个新功能来实现TextBox中不存在的功能,您必须手动处理它。一段时间后,您将实现自定义RichTextBox或类似的东西。

其次,甚至很难解决你提到的问题。从技术上讲,您可以覆盖绘制功能(如果您需要TextBox的新功能,则 可以执行此操作)。然后,您可以让TextBox自行绘制并在图像上方绘制彩色文本。 不要这样做。您将遇到两个(可能更多)问题:

  • 图像闪烁。原始文本框自己绘制后,图像可以显示在屏幕上(如果您不使用双缓冲)。
  • 文字对齐。很难将彩色文本正好放在黑色文本上方,而且您可能会遇到文本渲染问题:您需要清除区域。