0

単純な Syntax Highlighter のために、TextBoxクラスにSelectionColorというプロパティが必要です。RichTextBox を直接使用することはできません。問題が多すぎるため、これを実行しようとしています。

そのプロパティを TextBox で使用できるようにする方法はありますか? それが不可能な場合は、自分で書いてみますが、その方法、基本的にはどのように機能するかについてのアイデアが必要です-元のテキストに文字列を描画することに基づいていますか?

前もって感謝します。

4

1 に答える 1

1

基本的に、プレーン テキスト以外に TextBox を使用することはお勧めできません。まず第一に、最終的に実装する新しい機能を取得しますが、これは TextBox には存在せず、手動で処理する必要があります。しばらくすると、カスタム RichTextBox などを実装します。

第二に、あなたが言及した問題を解決することさえ比較的困難です。技術的には、ペイント機能をオーバーライドできます ( TextBox に新しい機能が必要な場合は、これを行う必要があります)。その後、TextBox にそれ自体をペイントさせ、画像の上に色付きのテキストをペイントさせることができます。しかし、それをしないでください。次の 2 つの (場合によってはそれ以上の) 問題が発生します。

  • 画像のちらつき。元のテキスト ボックスが描画されると、イメージを画面に表示できます (ダブル バッファリングを使用しない場合)。
  • テキストの配置。色付きのテキストを黒のテキストの上に正確に配置するのは難しく、さらにテキストのレンダリングで問題が発生する可能性があります。描画している領域をクリアする必要があります。
于 2013-03-13T15:59:03.047 に答える