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 )