Hallo,
ich habe ein kleines Problem mit einer RichTextBox bzw. mit .rtf files.
In meiner Form gibt es einen Button mit dem ich eine .rtf Datei die bereits existierts mit WordPad öffne um diese zu bearbeiten.
Außerdem setzte ich einen FileSystemWatcher auf diese Datei an, sodass sobald diese über WordPad gespeichert wird zur Vorschau in eine RichTextBox geladen wird.
Folgendes passiert:
Wenn ich den Button clicke, dann wird die Datei wie gewünscht mit WordPad geöffnet. Sobald ich speichere wird auch wie gewünscht die Datei in die RichTextBox geladen.
Wenn ich die Datei aber mehrmals über WordPad speichere, dann bekomme ich folgende Fehlermeldung (manchmal nach dem 2. mal, manchmal nach dem 3. mal speichern)
ich habe ein kleines Problem mit einer RichTextBox bzw. mit .rtf files.
In meiner Form gibt es einen Button mit dem ich eine .rtf Datei die bereits existierts mit WordPad öffne um diese zu bearbeiten.
Außerdem setzte ich einen FileSystemWatcher auf diese Datei an, sodass sobald diese über WordPad gespeichert wird zur Vorschau in eine RichTextBox geladen wird.
Folgendes passiert:
Wenn ich den Button clicke, dann wird die Datei wie gewünscht mit WordPad geöffnet. Sobald ich speichere wird auch wie gewünscht die Datei in die RichTextBox geladen.
Wenn ich die Datei aber mehrmals über WordPad speichere, dann bekomme ich folgende Fehlermeldung (manchmal nach dem 2. mal, manchmal nach dem 3. mal speichern)
Additional information: Der Prozess kann nicht auf die Datei "xxxx\bin\Debug\texte\18.rtf" zugreifen, da sie von einem anderen Prozess verwendet wird.
C#-Quellcode
- private void button4_Click(object sender, EventArgs e)
- {
- FileSystemWatcher fsw = new FileSystemWatcher();
- fsw.Path = Application.StartupPath + "\\texte\\";
- fsw.Filter = Path.GetFileName(this._Text.GetPath());
- fsw.NotifyFilter = NotifyFilters.LastWrite;
- fsw.Changed += Fsw_Changed;
- fsw.EnableRaisingEvents = true;
- Process.Start(this._Text.GetPath());
- }
- private void Fsw_Changed(object sender, FileSystemEventArgs e)
- {
- richTextBox1.Invoke(new Action(() => {
- richTextBox1.LoadFile(this._Text.GetPath());
- }));
- }