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;
            }
         //后续操作
     }

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

友情提示

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值