Mein Programm hat eine Schaltfläche, die beim Anklicken einen OpenFiledialog öffnet, um ein Bild auszuwählen:
%Vor%Durch eine Überprüfung der Dialogresultate wurde mein Problem nicht gelöst:
%Vor% Der Code funktioniert, wenn ich ein Bild wähle und die Dateiauswahl vervollständige. Aber wenn ich den Prozess zu irgendeinem Zeitpunkt dazwischen abbrechen, bekomme ich die Ausnahme "Der Pfad hat keine Rechtsform". Ich bin mir nicht sicher, welchen Teil ich mir vorstellen könnte, mit einem try-catch
, aber ich bin nicht sicher, welcher Teil das Problem verursacht. Wenn ich einen try catch
um den Aufruf der ChoosePicture()
-Methode setze, kann ich zumindest verhindern, dass das Programm abstürzt, aber die Ausnahme wird immer noch geworfen, wenn kein Bild in der fdialogbox ausgewählt ist.
auch, FileName ist bereits eine Zeichenkette, also müssen Sie nicht .ToString()
darauf verwenden
BEARBEITEN : feste Einrückung
Jetzt wird es funktionieren!
Wir sollten der Dialogbox Eigenschaften hinzufügen, bevor sie tatsächlich angezeigt wurde. Wenn es geöffnet wird, hat es alle diese Eigenschaften, wenn Sie es zum ersten Mal öffnen.
Bearbeiten: Okay, Sie haben den Designer bereits mit der Toolbox hinzugefügt und standardmäßig alle diese Optionen. aber wenn einige aus Code hinzufügen. es sollte immer sein, bevor es gezeigt wird. Ich werde das hier lassen. so dass jemand, der das tut
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
im Code wird wissen, dass sie diese Eigenschaft hinzufügen sollten, bevor sie den Dialog zeigen. Auch hier sind diese wahren Werte standardmäßig so, es sei denn, du hast vorher falsch erwähnt und es hier wahr gemacht.
Sie können es einfach so machen, anstatt return fDialog.FileName;
und DialogResult.Cancel
ist eine bessere Option, da Sie nach einem Abbrechen und nicht nach dem OK-Ergebnis suchen.
Tags und Links c# image file-io exception openfiledialog