1

データベースに保存されているDataGridViewを持つC#アプリケーション(Windowsフォーム)で作業しています(各セルは文字列と見なされます)。私がやりたいのは、データベースのコンテンツを(紙に)印刷したときに色が残るように、テキスト(またはセルBackColor )に色を付けるボタンを追加することです。

私が考えていたのは、セル文字列をRTFに変換することですが、セルがRTFをネイティブにサポートしていないためにこれを行う方法がわかりません。DataGridViewをリッチなDataGridViewに変更することはできるだけ避けたいので、色付きのセルを保存するときにこの文字列を追加するようなことができるかどうか疑問に思いました。

"{\ rtf1 \ fbidis \ ansi \ ansicpg1252 \ deff0 \ deflang1036 {\ fonttbl {\ f0 \ fswiss \ fprq2 \ fcharset0 Microsoft Sans Serif;} {\ f1 \ fnil \ fcharset0 Microsoft Sans Serif;}} {\ colortbl; \ red255 \ green0 \ blue0;} \ viewkind4 \ uc1 \ pard \ ltrpar \ cf1 \ f0 \ fs17 "+ cell.Value.ToString()+" \ cf0 \ f1 \ par "

トリッキーなことは、アプリケーションを開くときに、各セルの文字列を読み取り、RTFスタイルをセルスタイルに適用したいということです。たとえば、「hello」を含む赤いセルを保存します。アプリケーションを開くときはセルを赤にしますが、印刷するとき(もう一度紙)はテキストを赤にします(開いた状態でRTFを解析して分離します)フォーマットからのテキスト)。

何か案は?前もって感謝します。:)

4

1 に答える 1

0

正しいRTF文字列が見つかったと言うのを忘れました。次のとおりです。

"{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1036{\\fonttbl{\\f0\\fswiss\\fprq2\\fcharset0 Microsoft Sans Serif;}{\\f1\\fnil\\fcharset0 Microsoft Sans Serif;}}{\\colortbl ;\\red255\\green0\\blue0;}\\viewkind4\\uc1\\pard\\cf1\\f0\\fs17 " + value + "\\cf0\\f1}";

アプリケーションを起動するときは、文字列にRTFヘッダーが含まれているかどうかを確認し、テキストを分割して値を保持し、セルにスタイルを適用します。

于 2012-05-11T14:11:36.797 に答える