我正在为语法编辑设计一个 Windows 窗体控件。我知道那里已经有很多了,比如Scintilla、FastColoredTextBox、 Actipro Syntax Edito r、Avalon Edit等。我有自己设计的理由,所以这不是问题。
到目前为止,我一直在设计控件的外观和感觉。它需要能够垂直和水平控制。
我遇到的选项是:
- 我的控件扩展了 ScrollableControl或ContainerControl
- 我的控件实例化了一个HScrollBar和VScrollBar控件并相应地放置它们
- 我的控件使用ScrollBarRenderer自定义绘制滚动条
我不确定这些选项中的哪一个是我控制的最佳实践。
我尝试使用ScrollableControl和ContainerControl,但这有一些非常不希望的结果,可能是因为控件DisplayRectangle
正在滚动......我不想要这个。我想滚动一个包含文本的自定义绘制矩形。
我尝试实例化 HScrollBar 和 VScrollBar,但这似乎非常有问题,并且无法很好地处理焦点,我无法弄清楚如何正确捕获 VScroll 和 HScroll 事件。
我尝试使用ScrollBarRenderer,但这似乎只是为了实现滚动条而付出了巨大的努力,并且使用这种方法,我仍然必须适当地捕获和处理事件。
那么我应该使用哪些方法,或者确实是我可能忽略的方法?