автоматическое сохранение текста в текстовом редакторе каждые пять секунд

Я новичок в С#. В основном я хочу реализовать функцию автоматического сохранения с помощью таймера. Могу ли я узнать, как мне это реализовать, чтобы текст автоматически сохранялся каждые 5 секунд?

SaveFileDialog saveFile1 = new SaveFileDialog();

saveFile1.DefaultExt = "*.rtf";
saveFile1.Filter = "RTF Files|*.rtf";

if (saveFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK &&
           saveFile1.FileName.Length > 0)
{

   txtb.SaveFile(saveFile1.FileName, RichTextBoxStreamType.PlainText);

Я могу сохранить файл, но как мне его автоматически сохранить?


person Ema_wat    schedule 26.03.2018    source источник
comment
Напишите метод, который сохраняет файл без взаимодействия с пользователем, т. е. без SaveFileDialog, затем вызовите этот метод из процедуры ручного сохранения, т. е. из обработчика событий Click соответствующего Button, и из процедуры автоматического сохранения, т. е. из обработчика событий Tick вашего Timer. В этом нет никакой магии.   -  person jmcilhinney    schedule 26.03.2018
comment
Вы могли бы просто поискать Как использовать таймеры в C# и Как написать текстовый файл.   -  person jegtugado    schedule 26.03.2018


Ответы (1)


Просто используйте таймер с интервалом 5000ms

Timer tmr = New Timer;
tmr.Interval = 5000;

Теперь вызовите свой таймер в событии Form_Load или там, где вы хотите вызвать его в первый раз. После этого просто используйте событие Tick таймера (Примечание. При первом вызове SAVEFILEDIALOG убедитесь, что вы сохранили местоположение в какой-либо переменной, чтобы вы могли повторно использовать его для сохранения текстового файла, который будет избавьте от необходимости снова и снова использовать SAVEFILEDIALOG):

Строка pathOfFile;

private sub FirstTimeSaveIt_Click // the button that saves it first
if (saveFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK &&
saveFile1.FileName.Length > 0)
{
  pathOfFile = saveFile1.FileName
  txtb.SaveFile(saveFile1.FileName, RichTextBoxStreamType.PlainText);
  }
private void tmr_Tick()
{
tmr.Stop();
txtb.SaveFile(pathOfFile, RichTextBoxStreamType.PlainText);

tmr.start();
}
person Christopher H.    schedule 26.03.2018
comment
tmr.Tick += новый обработчик событий (File_Save_MenuItem_Click); Я использовал этот метод события тика, но он выдает ошибку. Пожалуйста, объясните мне, как использовать событие тика и где я должен вызвать эту функцию @Sebastian Hofmann - person Ema_wat; 26.03.2018
comment
Просто объявите событие в форме ur load - person Christopher H.; 26.03.2018
comment
private void File_Save_MenuItem_Click (отправитель объекта, EventArgs e) { Timer tmr = new Timer(); tmr.Interval = 5000; тмр.Старт(); //логика сохранения tmr.Stop(); tmr.Tick += File_Save_MenuItem_Click; } то, как я сделал, правильно - person Ema_wat; 26.03.2018
comment
Просто добавьте таймер таймера в вашу форму из панели инструментов. - person Christopher H.; 26.03.2018
comment
Я добавил метод в таймер, но .am получил сообщение об ошибке. Имя типа или пространства имен «Таймеры» не существует в пространстве имен «System.Windows.Forms» (вам не хватает ссылки на сборку?). Я пытался добавить сборка system.windowsform dll, но она недоступна. Могу ли я узнать, как это исправить - person Ema_wat; 26.03.2018
comment
это ТАЙМЕР не ТАЙМЕРЫ нет S - person Christopher H.; 26.03.2018
comment
private void timer1_Tick (отправитель объекта, EventArgs e) { } я добавил код, который я упомянул выше. ошибок таймера компиляции нет. но файл не сохраняется автоматически. нужно сделать. - person Ema_wat; 26.03.2018
comment
System.Windows.Forms.Timer tmr = new System.Windows.Forms.Timer(); я использовал это вместо объявления пространства имен. - person Ema_wat; 26.03.2018
comment
у меня нет ошибки. но файл не сохраняется автоматически. я сначала сохранил файл и снова набрал. все, что я набрал, не сохранялось автоматически через 5 секунд - person Ema_wat; 26.03.2018
comment
не могли бы вы поделиться со мной кодом, где я должен вызвать таймер. все еще получаю ошибки. - person Ema_wat; 26.03.2018
comment
без указания пути. невозможно ли автоматически сохранить его в файл, где я его уже сохранил. как мне это сделать. где я должен вызвать метод. пожалуйста, объясните четко - person Ema_wat; 26.03.2018
comment
Просто следуйте моему коду, вот и все ... Он показывает вам все, что вам нужно - person Christopher H.; 26.03.2018
comment
Могу ли я узнать, почему мы создаем кнопку (использование кнопки)? - person Ema_wat; 26.03.2018