2009-05-12 17 views
4

リッチテキストのDataGridViewCellを作成しようとしています。私は編集コントロールとしてRichTextBoxをホストすることができますが、セルが編集モードでないときは、リッチテキストを自分でペイントする必要があります。私はテキストを解析したくありません - リッチテキストで動作するGraphics.DrawStringに相当するものが必要です。リッチテキストを画像にレンダリングするにはどうすればよいですか?

答えて

5

Here's an exampleリッチテキストボックスに印刷機能を追加できます。基本的に、リッチテキストを印刷に使用するGraphicsオブジェクトにコピーするだけです。私はあなたが代わりに独自のグラフィックスオブジェクトを使用し、基本的に画像に「印刷」するようにこれを変更できると思います。

編集:

​​3210誰かが画像を作成するための印刷コードを変更しているようです。

+0

これは私が与えた答えです。私はそれを倍増させるために、カスタム描画されたツリービューで同様のアプローチを使用しました。 –

0

あなたのためにできるWinForms内の解決策はないと思います。ここでの最適なアプローチは、おそらく平易なレンダリングと編集の両方にRichTextBoxを使用し、編集モードでないときはそれをロックします(Lockedをtrueに設定する)。

+0

セルが編集モードでない場合、DataGridViewCellの編集コントロールは表示されません。画面上のRichTextBoxインスタンスにアクセスできない場合でもテキストをレンダリングできる必要があります。 – Simon

+0

イメージ上に構築されたカスタムグラフィックスデバイスコンテキストに印刷します。これはwinformsのネイティブな部分です。 –

関連する問題