1

フォーマットを完全に失うことなく単語コンテンツをrichtextboxにコピーしましたが、現在はrichtextboxのコンテンツを編集しています。

ここで、WinFormsを使用してC#で、書式設定を失うことなく、リッチテキストボックスのコンテンツをWord文書にエクスポートしたいと思います。どうしますか?

WordApp.ActiveDocument.SaveAsQuickStyleSet("abc.doc");

Range rng = WordApp.ActiveDocument.Range(0, 0);


for (int i = 0; i < _dgvrow.Cells.Count; ++i)
{
    // add code to loop thru controls and TypeText into word document

    Label lb  = (Label)this.Controls["lblfield" + (i+1).ToString()];
    rng.Text += lb.Text;
    rng.Select();

    Control ctrl = this.Controls["txtfield" + (i+1).ToString()];

    if(ctrl is RichTextBox)
    {
        RichTextBox rb = (RichTextBox)ctrl;
        rng.Text += rb.Text + Environment.NewLine;
        rng.Select();
    }
    else if (ctrl is TextBox)
    {
        TextBox rb = (TextBox)ctrl;
        rng.Text += rb.Text + Environment.NewLine;
        rng.Select();
    }
}
4

3 に答える 3

2

justのTextプロパティRichTextBoxはプレーンテキストを返します。プロパティを使用して、Rtfrtf形式のテキストを返します。

残念ながら、WordにはRTFテキストを挿入する方法がありません。ただし、クリップボードからRTFテキストを貼り付けることができます

Clipboard.SetText(rb.Rtf, TextDataFormat.Rtf);
rng.Paste()
于 2013-03-19T22:25:36.260 に答える
0

プレーンテキストだけでなく、コントロールのリッチテキスト形式を取得する必要があります。

に置き換えrb.Textますrb.Rtf

MSDNから:

Textプロパティは、RichTextBoxのコンテンツに適用されたフォーマットに関する情報を返しません。リッチテキストフォーマット(RTF)コードを取得するには、Rtfプロパティを使用します。

さらに、リッチテキスト形式をファイルに保存する場合は、次の機能が組み込まれています。

rb.SaveFile(yourFilePath);
于 2013-03-19T22:04:21.713 に答える
-2

あなたの発言を見て、私が正しくコーディングしたものを提案することができます。

コード化されたリッチテキストボックスをファイルの保存方法で.rtfまたは.docとして保存し、MicrosoftWordで開きます。

失敗しません。

に関して。

于 2017-08-22T13:13:41.580 に答える