我需要将一个文本文件加载到 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)