Wie kann ich verhindern, dass eine Ausnahme aus, wenn ich Abbrechen eines openfiledialog?

Mein Programm hat eine Schaltfläche, die beim anklicken öffnet sich ein openfiledialog, um ein Bild:

private string ChoosePicture()
{         
    fDialog.Title = "Select Picture";
    fDialog.Filter = "Image Files (*.bmp, *.gif, *.jpg)|*.bmp; *.gif*;*.jpg";
    fDialog.InitialDirectory = "C:";
    fDialog.ShowDialog();

    fDialog.AddExtension = true;
    fDialog.CheckFileExists = true;
    fDialog.CheckPathExists = true;

    //returns a string for the directory
    return fDialog.FileName.ToString();
}

Durch einen check auf die dialogresult-box hat nicht mein Problem gelöst entweder:

fDialog.AddExtension = true;
fDialog.CheckFileExists = true;
fDialog.CheckPathExists = true;

DialogResult res = fDialog.ShowDialog();
if (res == DialogResult.OK)
{                
    //returns a string for the directory
    return fDialog.FileName.ToString();
}

return null; 

Der code funktioniert, wenn ich wählen Sie ein Bild aus und füllen Sie die Auswahl der Datei. Allerdings, wenn ich brechen Sie den Vorgang an einem beliebigen Punkt in zwischen bekomme ich die exception "Der Weg ist nicht in der Rechtsform". Ich bin nicht sicher, welches Teil ich mir vorstellen, ich könnte dies mit einem try-catch aber ich bin nicht positiv, welches Teil das Problem verursacht? Wenn ich ein try catch um den Aufruf an die ChoosePicture() Methode, kann ich zumindest verhindern, dass es abstürzt, das Programm aber die Ausnahme ist, noch wird geworfen, wenn kein Bild ausgewählt ist, in der fdialogbox.

  • wickeln Sie Ihren code für die Dialogresult-um eine If-else-Anweisung
  • Dies geschieht, weil Sie ignorieren, ist der Rückgabewert von ShowDialog(). Könnte das schlechte Einrücken zu.
  • fügen Sie die dialogbox, die Einschränkungen, bevor Sie tatsächlich das Dialogfeld angezeigt. nach, dass Ihr alles erledigt und diese überprüfung einfach egal
  • es sei denn, Sie setzen Sie in der designer, die diese Einstellung eigentlich egal, der Steuerung, wenn zum ersten mal verwendet.
  • es klingt wie Sie brauchen, um zu überprüfen, der Wert wird zurückgegeben, die von der ChoosePicture () - Methode auf, bevor Sie verarbeiten weiter. Wenn gibt die Methode einen leeren string oder null ist, nicht weiterfahren. Zeigen Sie den code, der den Aufruf der ChoosePicture () - Methode
InformationsquelleAutor Fuzz Evans | 2012-01-05
Schreibe einen Kommentar