В моей программе есть кнопка, при нажатии на которую открывается openfiledialog для выбора картинки:
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();
}
Использование проверки на поле dialogresult также не решило мою проблему:
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;
Код работает, если я выбираю картинку и завершаю выбор файла. Однако если я отменяю процесс в любой момент между ними, я получаю исключение "Путь не имеет законной формы". Я не уверен, в какой части я представляю, что могу позаботиться об этом с помощью try-catch
, однако я не уверен, какая часть вызывает проблему? Если я поставлю try catch
вокруг вызова метода ChoosePicture()
, я, по крайней мере, смогу предотвратить аварийное завершение программы, но исключение все равно будет возникать, когда в fdialogbox не выбрана картинка.