报错情况
说明
使用open/saveFileDialog对话框一般有两种方法
- 方法一:Form中直接拖控件
saveFileDialog1.ShowDialog();
- 方法二:使用OpenFileDialog类创建实例对象
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFiledialog1.ShowDialog();
我们打开这两种对话框一般是进行读存文件操作,因此一般设置一个变量存储目标文件的路径
string pathFileName = saveFileDialog1.FileName;
但是打开对话框后,我们有时候想取消这一步操作,于是点了“取消”,报错就产生了。
原因
通过监视变量发现,我们在对话框中选择了目标文件,则pathFileName
存储了对应的路径。以下filepath
和filename
是我对路径和文件名进行的切割(可忽略)。
若选择取消,那么
在方法一中,若无目标选中,则返回实例名,导致对这个路径查询时报错。
在方法二中,若无目标选中,则返回null,对这个路径查询时不会报错
解决方案
使用以下方法可以避免上述情况
if (pOpenFileDialog.ShowDialog() == DialogResult.OK)
{
string pFileName = pOpenFileDialog.FileName;
if (pFileName == "")
{
return;
}
//后续操作
}
或者,使用方法二:在每个事件里使用对应的类实例化对象
友情提示
凡是在对话框中需要存储目标文件的变量,都需要注意是否有可能为null。
null的情况下是不能调用属性和方法的。