0

我在 Visual Studio 2008 中使用 VB.NET 创建了一个自定义控件,它为搜索和救援应用程序提供了广泛的映射和跟踪功能。我遇到的问题是,在许多地方我需要定义主应用程序可执行文件的路径,以便找到控件需要正常运行的多个目录。当我在 VS 中使用它时一切正常,但是当我尝试将控件嵌入到单独解决方案中的表单中时,出现以下错误:

未能创建组件“MainControl”。错误消息如下:'System.IO.DirectoryNotFoundException:找不到路径的一部分'C:\Program Files\Microsoft\Visual Studio 9.0\Common\IDE\GIS\Data\Default...

这似乎表明它正在 Visual Studio 程序路径中寻找 \GIS\Data\Default 目录,但我已使用 Application.StartupPath 在整个控件中定义此位置。

仅当尝试将控件嵌入控件解决方案之外的表单时,才会出现此错误。我为开发此控件而创建的解决方案有两个项目(一个用于控件,一个用于测试表单以进行调试)

任何人都可以为此提供一些指导吗?

4

1 回答 1

1

当您的控件在设计器中使用时执行代码时,就会发生这种情况。确实,当您将控件放在 Visual Studio 中的窗体上时,诸如构造函数、Load 事件、Paint 事件等的东西将运行。

当当前工作目录错误时,您需要使用 DesignMode 属性来防止此代码运行和崩溃。设计器会出错,工作目录是 Visual Studio 的,而不是最终使用它的应用程序。或者使用绝对路径,而不是相对路径。

如果这没有帮助,这里解释了如何调试设计时问题。

于 2010-07-30T23:11:39.310 回答