如题,这个问题很蛋疼,初看代码很难发觉问题所在,调试的话也是的,选择少了文件不会报错,只选择一次也不报错,偏偏就在第二次的时候报错。让人很头疼。
实际问题所在是因为CommonDialog.FileName没有清空才导致的这个问题。
可以新建一个工程,放两个按钮,再放一个CommonDialog控件,两个按钮分别打开文件选择对话框,属性什么的都设置一样的,运行,单击按钮但是不选择文件,可以发现两次打开的目录是完全一样的。可是第一次打开后选择若干个文件,第二次再打开会发现打开的路径不同了,也会报错了,同时文件名那个框也莫名其妙的有值了。实际就是FileName属性捣的鬼。
解决方法如下:
FileDialog.Flags = cdlOFNAllowMultiselect Or cdlOFNHideReadOnly Or cdlOFNExplorer FileDialog.Filter = "所有文件(*.*)|*.*|XML格式文件 (*.xml)|*.xml" FileDialog.MaxFileSize = 32766 FileDialog.Filename = "" FileDialog.ShowOpen在打开之前将CommonDialog的FileName属性清空,这样就不会报错了。