構文編集用の Windows フォーム コントロールを設計しています。Scintilla、FastColoredTextBox、Actipro Syntax Editor、Avalon Editなど、すでにたくさんあることは知っています。自分でデザインする理由があるので、それは問題ではありません。
ここまでは、コントロールのルック アンド フィールをデザインしてきました。垂直方向と水平方向を制御できる必要があります。
私が遭遇したオプションは次のとおりです。
- 私のコントロールはScrollableControlまたはContainerControlを拡張します
- 私のコントロールはHScrollBarとVScrollBarコントロールをインスタンス化し、それに応じて配置します
- 私のコントロールはScrollBarRendererを使用してスクロールバーをカスタム描画します
これらのオプションのどれが私のコントロールのベスト プラクティスになるかわかりません。
ScrollableControlとContainerControlを使用してみましたが、おそらくコントロールDisplayRectangle
がスクロールしていたため、非常に望ましくない結果が得られました...これは望ましくありません。テキストを保持するカスタム描画長方形をスクロールしたい。
HScrollBar と VScrollBar のインスタンス化を試みましたが、これは非常にバグがあるようで、フォーカスでうまく機能せず、VScroll と HScroll のイベントを適切にキャプチャする方法がわかりませんでした。
ScrollBarRendererを使用してみましたが、スクロールバーを実装するだけでも大変な作業のように思えます。このアプローチでは、イベントを適切にキャプチャして処理する必要があります。
では、これらのアプローチのどれを使用する必要がありますか、または実際に見落とした可能性のあるアプローチですか?