На этот вопрос был дан ответ. Я рекомендую решение sumit_programmers ниже. На данный момент я удалил свой код, думая, что он больше сбивает с толку, чем помогает. Когда я немного доработаю его, возможно, я опубликую здесь свой код с некоторыми комментариями.
Вас также может заинтересовать ответ на вопрос Сохранить текст из поля форматированного текста с помощью C # . Есть ответ, напоминающий принятый ответ на этот вопрос. Код должен работать, но он написан мной, поэтому могут быть некоторые ошибки или отсутствующая информация.
Обновление: я немного улучшил код (по крайней мере, я так думаю). «Encoding.Default», похоже, работает с наиболее распространенными кодировками, такими как ANSI. Если используется кодировка UTF-8 без отметки порядка байтов (BOM), похоже, что "Encoding.Default" не работает. Для получения дополнительной информации посетите informit.com/guides . Вот код, который я использую сейчас:
private void fileOpen_Click(object sender, EventArgs e)
{
using (OpenFileDialog dlgOpen = new OpenFileDialog())
{
try
{
// Available file extensions
dlgOpen.Filter = "All files(*.*)|*.*";
// Initial directory
dlgOpen.InitialDirectory = "D:";
// OpenFileDialog title
dlgOpen.Title = "Open";
// Show OpenFileDialog box
if (dlgOpen.ShowDialog() == DialogResult.OK)
{
// Create new StreamReader
StreamReader sr = new StreamReader(dlgOpen.FileName, Encoding.Default);
// Get all text from the file
string str = sr.ReadToEnd();
// Close the StreamReader
sr.Close();
// Show the text in the rich textbox rtbMain
rtbMain.Text = str;
}
}
catch (Exception errorMsg)
{
MessageBox.Show(errorMsg.Message);
}
}
}