xuyunhai Ответов: 1

Вопрос о функции сохранения файла richtextbox


Мой компонент richtextbox с именем rtbEditGcode, я использовал rtbEditGcode_TextChanged, чтобы проверить, изменилось ли содержимое richtextbox.если содержимое изменяется,я использую функцию savefile для хранения содержимого, но иногда она вызывает исключение ioexception.

как я могу ответить на этот вопрос?

Что я уже пробовал:

я не знаю,как это сделать, спасибо за ответ.

JayantaChatterjee

Я думаю, что это неправильный процесс сохранения содержимого RichTextBox в событии TextChanged, потому что он будет срабатывать каждый раз, когда вы изменяете(набираете или удаляете) текст в RichTextBox..
Вы можете попробовать создать таймер или кнопку для сохранения содержимого..
Что такое сообщение об ошибке IOException?

CHill60

"иногда" - именно когда он выбрасывает исключение?
Что такое фактическое исключение?
Поделитесь кодом, который вы используете

1 Ответов

Рейтинг:
1

OriginalGriff

Мое лучшее предположение - и без запуска вашего кода здесь предположение - это все, что может быть, - это то, что метод SaveFile является асинхронным: он запускает поток для сохранения и немедленно возвращается. Если это так, то ваше исключение IOException будет связано с тем, что файл используется с момента последнего сохранения, поскольку событие TextChanged запустилось снова сразу же после завершения текущего события.

Как говорит Джаяначаттерджи, событие TextChanged-плохое место для сохранения информации, так как оно может измениться довольно быстро, если пользователь-хорошая машинистка!
Я бы предположил, что флаг" IsDirty", установленный в событии TextChanged и проверенный таймером, был бы лучшим подходом. Установите таймер на интервал 60000 и сбросьте флаг при сохранении. Обычно я бы предложил поток для обработки этого, но поскольку вы не можете получить доступ к элементам управления в другом потоке, это просто означало бы вызов запроса обратно в основной поток в любом случае, чтобы сделать сохранение!


JayantaChatterjee

Именно это я и пытаюсь сказать..
спасибо за объяснение, сэр....