如何创建条纹富文本框?

Posted

技术标签:

【中文标题】如何创建条纹富文本框?【英文标题】:How to create a striped richtextbox? 【发布时间】:2011-10-27 07:59:52 【问题描述】:

我需要在带有绿色条纹背景的 RichtTextBox 中显示文本。这意味着,第一行的背景颜色为白色,第二行的背景颜色为绿色,第三行为白色,下一行为绿色,以此类推。

我该如何实现?

目前我想象的唯一方法是为每个文本行设置颜色。但我必须用空格填充每一行才能得到整行。这种方式对我来说似乎是不好的做法。

我想到了诸如 OnPaint 事件之类的事情,我可以在显示文本之前为每一行设置背景颜色。

如果有另一个 TextControl 可以处理我的问题,或者我必须实现自己的控件,这也是一个可以接受的解决方案。请给我一些提示。

P.S.:我使用的是 .Net2.0。

【问题讨论】:

一个想法是让 RTB 透明,并让你的图案在后面,也许使用 RTB 停靠的自定义面板。 这可能不是最实用的,具体取决于您对线路的要求(这就是我没有发布答案的原因)。 【参考方案1】:

实现这一目标的一个选择是使用开源http://scintillanet.codeplex.com/ 项目。另一位 SO 用户询问如何使用此特定工具更改行颜色:Alternate row coloring in Scintilla

如果您不反对付费,WPF Actipro Syntax Editor 支持此功能,但我不确定 WinForm 版本是否支持。

最后的选择是使用来自 #Develop 或 WPF AvalonEdit 的一些代码

【讨论】:

以上是关于如何创建条纹富文本框?的主要内容,如果未能解决你的问题,请参考以下文章

layui富文本框怎么设置默认值?

一个简单富文本输入框控件的设计历程(一)

Visual c++ 如何从富文本框中读取

C#中,怎么使用富文本框控件显示一个文件的内容

富文本框 .rtf 字符串与通过剪切和粘贴复制文本不同。如何获得相同的格式?

如何在 C# 的富文本框中将文本添加到用户光标的位置?