Вопрос с этим блокнотом заключается в том, что мы используем RichTextBox вместо Textbox, что значит, что мы должны учитывать особенности поведения данного элемента управления. В нашем случае, прикол в том, что в RichTextBox мы можем менять шрифт и цвет не только всего текста, но и его частей, а также добавлять изображения. Такие изменения в поведении элемента непосредственно влияют на методы сохранения результатов работы пользователя. Это значит, что мы больше не можем просто использовать File.ReadAllText/ File.WriteAllText с указанием Encoding, а должны использовать встроенные в элемент RichTextBox методы, такие как: SaveFile() и LoadFile(). И тут уже понемногу наш изначальный проект 'Блокнот' превращается в проект 'WordPad', так как теперь основным форматом сохранения для нашей программы будет не TXT, а RTF (Rich Text Format), который будет сохранять всё, что вставил пользователь в наш RichTextBox. Однако это частично отменяет данные поставленными преподавателями задачи:
● Сохранение набранного текста (по умолчанию в кодировке UTF-8, по
желанию с выбором нужной кодировки);
● Открытие текстового файла (по умолчанию в кодировке UTF-8, по желанию с
выбором нужной кодировки);
так как теперь кодировку мы выбирать не сможем из-за использования единого стандарта RTF.
Я сделал этот проект соблюдая описанные в Google Disk задачи, однако считаю, что более правильным решением было бы просто сделать проект с TextBox, так как знания и опыт работы с Encoding пригодятся больше, чем прописывание одной строчки на сохранение:
textBox.SaveFile(memStream, RichTextBoxStreamType.RichText);
И одной строчки на чтение:
textBox.LoadFile(memStream, RichTextBoxStreamType.RichText);