方法 : Windows フォームの RichTextBox コントロールを使用してファイルを保存する

Windows フォームの RichTextBox コントロールでは、表示している情報を次のいずれかの形式でファイルに書き込むことができます。

  • 書式なしテキスト

  • Unicode の書式なしテキスト

  • リッチ テキスト形式 (RTF: Rich Text Format)

  • OLE オブジェクトをスペースに置き換えた RTF

  • OLE オブジェクトをテキストで表示した書式なしテキスト

ファイルを保存するには、SaveFile メソッドを呼び出します。 また、SaveFile メソッドを使用してストリームにデータを保存することもできます。 詳細については、SaveFile(Stream, RichTextBoxStreamType) のトピックを参照してください。

コントロールの内容をファイルに保存するには

  1. 保存するファイルのパスを決定します。

    実際のアプリケーションでこれを行うには、通常、SaveFileDialog コンポーネントを使用します。 概要については、「SaveFileDialog コンポーネントの概要 (Windows フォーム)」を参照してください。

  2. 保存するファイルと、必要に応じてファイルの種類を指定して、RichTextBox コントロールの SaveFile メソッドを呼び出します。 引数にファイル名だけを指定してメソッドを呼び出すと、ファイルは RTF として保存されます。 別の種類のファイルを指定するには、2 番目の引数として RichTextBoxStreamType 列挙型の値を指定します。

    次の例では、リッチ テキスト ファイルの場所に対するパスとして My Documents フォルダーが設定されています。 この場所を使用するのは、Windows オペレーティング システムを実行するコンピューターには、通常このディレクトリが存在すると考えられるためです。 また、My Documents を選択すると、ユーザーは最小限のシステム アクセス レベルでアプリケーションを安全に実行できます。 次の例は、既に RichTextBox コントロールが追加されたフォームを想定しています。

    Public Sub SaveFile()
       ' You should replace the bold file name in the 
       ' sample below with a file name of your own choosing.
       RichTextBox1.SaveFile(System.Environment.GetFolderPath _
       (System.Environment.SpecialFolder.Personal) _
       & "\Testdoc.rtf", _
          RichTextBoxStreamType.RichNoOleObjs)
    End Sub
    
    public void SaveFile()
    {
       // You should replace the bold file name in the 
       // sample below with a file name of your own choosing.
       // Note the escape character used (@) when specifying the path.
       richTextBox1.SaveFile(System.Environment.GetFolderPath
       (System.Environment.SpecialFolder.Personal)
       + @"\Testdoc.rtf",
          RichTextBoxStreamType.RichNoOleObjs);
    }
    
    public void SaveFile()
    {
       // You should replace the bold file name in the 
       // sample below with a file name of your own choosing.
       richTextBox1.SaveFile(System.Environment.GetFolderPath
       (System.Environment.SpecialFolder.Personal)
       + "\\Testdoc.rtf",
          RichTextBoxStreamType.RichNoOleObjs);
    }
    
    public:
       void SaveFile()
       {
          // You should replace the bold file name in the 
          // sample below with a file name of your own choosing.
          richTextBox1->SaveFile(String::Concat
             (System::Environment::GetFolderPath
             (System::Environment::SpecialFolder::Personal),
             "\\Testdoc.rtf"), RichTextBoxStreamType::RichNoOleObjs);
       }
    
    セキュリティに関するメモセキュリティに関するメモ

    次のコード例では、ファイルが存在しない場合は新規にファイルを作成します。 アプリケーションでファイルを作成する必要がある場合は、フォルダーに対してファイルの作成アクセスが必要です。 アクセス許可は、アクセス制御リストを使用して設定します。 ファイルが既に存在する場合、アプリケーションに必要なのは、より低い権限である書き込みアクセス許可だけです。 可能な場合は、配置時にファイルを作成し、フォルダーにはファイルの作成アクセスを許可せず、1 つのファイルだけに読み取りアクセスを許可する方が安全です。 また、ルート フォルダーや Program Files フォルダーにデータを書き込むよりも、ユーザー フォルダーに書き込む方が安全です。

参照

参照

RichTextBox.SaveFile

RichTextBox

その他の技術情報

RichTextBox コントロール (Windows フォーム)

Windows フォームで使用するコントロール