Speichern unter... Dialog
-
Nun stehe ich vor dem nächsten Problem:
Angenommen ich möchte jetzt eine txt datei öffnen und öffne sie per "öffnen mit" und dann wähle ich meinen Texteditor aus. Die datei wird aber nicht geladen. Wie kann ich das so verändern, dass die datei geladen wird? Und wie mache ich einen Dialog mit 3 auswahlmöglichkeiten? Bei meiner Fassung//Schließt die Anwendung if (dialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK) { Close(); } //speichert die Anwendugn auf dem Button speichern unter if (dialog1->ShowDialog() == System::Windows::Forms::DialogResult::Yes) { Stream^ myStream; SaveFileDialog^ saveFileDialog1 = gcnew SaveFileDialog; saveFileDialog1->Filter = "Textdateien (*.txt)|*.txt|Alle Dateien|*.*"; saveFileDialog1->FilterIndex = 2; saveFileDialog1->RestoreDirectory = true; if ( saveFileDialog1->ShowDialog() == DialogResult) { if ( (myStream = saveFileDialog1->OpenFile()) != nullptr ) { // Code to write the stream goes here. myStream->Close(); } } Close();
wird zwei mal dasselbe dialogfenster geöffnet wenn man speichern unter benutzt. Ich hoffe ir kann iner helfen.
-
Dann speicher doch das Ergebnis des ersten Aufrufs - du hast dort zweimal ShowDialog() aufgerufen, also was erwartest du?
DialogResult res = dialog1->ShowDialog(); if(res == System::Windows::Forms::DialogResult::OK) { close() } else if(res == System::Windows::Forms::DialogResult::Yes) { ... }
-
das hab ich auch schon bemerkt warum es so ist. allerdings nicht wie ich es beheben kann. Aber iwie funktioniert es nicht richtig.
"1>c:\...\texteditor\Form1.h(433): error C2065: 'res': nichtdeklarierter Bezeichner"
-
Vollständig muss es natürlich
System::Windows::Forms::DialogResult res = dialog1->ShowDialog();
heißen. Das braucht man aber nur, wenn man den Namensraum System::Windows::Forms nicht eingebunden hat.
-
Achso. Gut danke
-
So zwei Fragen: 1. Wie unterbreche ich das FormClosed event?
2. Wie kann ich eine Datei extern öffnen, dass heißt ich möchte, dass, wenn ich ein Dokument im Windows Explorer öffne, Ich dafür den Texteditor verwenden kann.Schon mal danke für die (hoffentlich hilfreichen) Antworten.
-
-dieser Beitrag wurde gelöscht-
-
Der Text-Editor geht mit auf, wenn du dein Betriebssystem dazu veranlasst:
System::Diagnostics::Process::Start(L"http://www.c-plusplus.net/");
Im Beispiel geht der Standardbrowser auf. Du übergibst als Argument den vollständigen Pfad deiner Text-Datei.
-
geht das auch, wenn ich nur z.B. *.txt eingebe?
denn sonst müsste ich ja Jede Text datei auf dem Computer einzeln verlinken....
-
Willst du die Datei aus deinem Programm heraus öffnen? Oder den txt-Dateityp in Windows mit deinem Programm verknüpfen?
-
das zweite
also wie ich es als standard programm einrichten müsste weiß ich. allerdings öffnet sich dan nur eine leere textdatei
-
Also das event unterbrechen krieg ich jetzt schon hin, allerdings mit dem externen öffnen...