0

C# の RichTextBox にテキスト ファイルを読み込む必要があります。リッチ テキスト ボックスへのテキスト ファイルの読み込みは、C++ の方法で行う必要があります。

以下の C++ コードのように、ファイルをリッチ テキスト ボックスにロードする方法はありますか?

以下の C++ コードの説明:

ここで、ハンドルは VC++ テキスト ボックス ハンドルであり、テキスト ボックス ハンドルにメモリを割り当てます。割り当てられたメモリに基づいて、バッファの内容が C++ のテキスト ボックスにロードされます。この動作を C# で実装するにはどうすればよいですか?

C++ コード:

length = (UINT) file.GetLength();
editHandle = pCEdit->GetHandle();
if (LocalReAlloc(editHandle, length + 1, LHND) == NULL )
{
      file.Close();
      return SF_MEM_ALLOC_ERROR;
}

// read file into the editBuffer
file.Read( (editBuffer = 
    (LPSTR) LocalLock(editHandle)), length );
editBuffer[length] = 0;
LocalUnlock( editHandle );
// Write it to the Text box, from the buffer
pCEdit->SetWindowText(A2T(editBuffer));

上記のコードには、アラインメントの問題はありません。

上記の C++ コードでは、以下の C# コード行を使用しました。

C# コード:

    private void button1_Click(object sender, EventArgs e)
    {
        string fullPath = "C:\\report.txt";
        richTextBox1.LoadFile(fullPath, RichTextBoxStreamType.PlainText);
    }

しかし、この方法でリッチ テキスト ボックスに読み込むと、配置の問題が発生します。

読み込んだテキスト ファイルには、多くの空白とタブが含まれています。ロードするファイル サイズに基づいて C# のリッチ テキスト ボックスにメモリを割り当てる方法は? アライメントの問題を確認するため。以下のリンクでスクリーンショットを見つけてください

C# コードの出力: (ソース: pictureupload.us )

4

4 に答える 4