【发布时间】:2012-12-10 03:22:17
【问题描述】:
我想为特定的只读文件格式开发一个文件查看程序,并且大部分情况下它只是可滚动的文本。最简单的方法当然是使用现有的文本显示控件,但我得出的结论是,我想要一种图形化的“自定义彩色突出显示”、文本着色,也许还有其他东西。所以我是打算自己处理这幅画。我认为尝试在标签或富文本框顶部排列我自己的图形是个坏主意,所以我打算只绘制除滚动条之外的所有内容......除非这些标签/富文本控件是以某种我不知道的方式更可扩展?
假设我走的是绘画路线,我不能 100% 确定具体细节。我是否直接在面板上绘画?还是有更好的 GUI 控件可以绘制?另外,我认为如果我不缓冲屏幕会更好,因为我认为在验证时重新绘制内容会很容易/有效......但是从缓冲区重新绘制可能会更快.. . 如果我只有一个屏幕缓冲区,它会为我省去很多麻烦吗……这是否效率很低?我的计划是直接在面板中绘画,无缓冲,是一个好主意,还是有我要放弃的首选方法?
【问题讨论】:
-
您考虑过使用 RichTextBox 吗? stackoverflow.com/questions/2527700/…
-
您仍然可以在 RichTextBox 上绘制“事物”...它只会为您省去很多麻烦来为您处理文本。 (请参阅GetPositionFromCharIndex 以帮助您入门)
-
谢谢,GetPositionFromCharIndex 的存在意味着他们已经考虑过在 RichTextBox 上绘画的用例,并告诉我将绘图放置在哪里,所以我将尝试为 RichTextBox 覆盖 OnPaint。