GIS二次开发中open/saveFileDialog对话框取消后的报错处理

报错情况

说明

使用open/saveFileDialog对话框一般有两种方法

  • 方法一:Form中直接拖控件
saveFileDialog1.ShowDialog();
  • 方法二:使用OpenFileDialog类创建实例对象
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFiledialog1.ShowDialog();

我们打开这两种对话框一般是进行读存文件操作,因此一般设置一个变量存储目标文件的路径

string pathFileName = saveFileDialog1.FileName;

但是打开对话框后,我们有时候想取消这一步操作,于是点了“取消”,报错就产生了。
对话框界面

原因

通过监视变量发现,我们在对话框中选择了目标文件,则pathFileName存储了对应的路径。以下filepathfilename是我对路径和文件名进行的切割(可忽略)。

若选择取消,那么
在方法一中
监视变量若无目标选中,则返回实例名,导致对这个路径查询时报错。


在方法二中
监视变量若无目标选中,则返回null,对这个路径查询时不会报错

解决方案

使用以下方法可以避免上述情况

 if (pOpenFileDialog.ShowDialog() == DialogResult.OK)
 	{
 		string pFileName = pOpenFileDialog.FileName;
        if (pFileName == "")
        	{
           		 return;
            }
         //后续操作
     }

或者使用方法二,在每个事件里使用对应的类实例化对象

扫描二维码关注公众号,回复: 10212673 查看本文章

友情提示

凡是在对话框中需要存储目标文件的变量,都需要注意是否有可能为null。
null的情况下是不能调用属性和方法的。

发布了3 篇原创文章 · 获赞 5 · 访问量 172

猜你喜欢

转载自blog.csdn.net/TransEcho/article/details/105119790