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

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

我该如何实现?

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

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

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

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

【问题讨论】:

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

标签: c# .net winforms richtextbox


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多