在奇怪的情况下在位图声明上引发异常

我遇到了这个问题,经过无奈的挫败才将其隔离到了这个问题上。当我从另一个文件夹中的exe上拖动文件时,与命令行参数无关的位图声明将引发异常“ System.ArgumentException:参数无效”。

在以下情况下不会发生这种情况:

  1. 该文件从与exe相同的文件夹中拖动
  2. 将文件拖到exe的快捷方式上

这是产生此错误的最低代码:

Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
            Dim logo As New Bitmap("logo.png")  'an image in the same dir as exe
            Me.BackgroundImage = logo
        Catch ex As Exception
            MessageBox.Show("Exception: " & ex.Message)
        End Try
    End Sub
End Class
金西尼

如果仅提供文件名,则假定该文件位于当前目录中。当前目录在启动时并不总是相同的,并且在应用程序运行时也可以更改。

我猜该文件与EXE位于同一文件夹中。在这种情况下,当代码工作时,当前目录必须是应用程序文件夹,而在失败的情况下,当前目录必须是其他文件夹。

Process.Start使用游戏运行时,我们经常会遇到类似的问题许多游戏照常运行,并假定当前目录是应用程序文件夹。如果您从命令行等运行游戏,那么它将是。如果用于Process.Start从代码运行游戏,则新过程实际上将继承应用程序的当前目录,并且这种代码将失败。

解决方案是始终明确文件路径。如果要打开应用程序文件夹中的文件,请准确指定以下内容:

Dim logo As New Bitmap(IO.Path.Combine(Application.StartupPath, "logo.png"))

该代码不依赖于当前目录为特定文件夹,因此,如果不存在,则不会受到影响。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在不重新分配的情况下在位图和位图源之间共享像素数据?

来自分类Dev

在不调用原始Exception的情况下在Except中引发异常

来自分类Dev

如何在不使用Java代码的情况下在Mule ESB中手动引发异常

来自分类Dev

我可以在没有回滚的情况下在python金字塔中引发异常吗?

来自分类Dev

默认情况下在包装中声明了permisisons CAMERA

来自分类Dev

如何在没有反走样的情况下在Photoshop中缩放位图?

来自分类Dev

在不使用Callable的情况下从线程引发异常?

来自分类Dev

在广泛异常的情况下,不会引发或捕获KeyboardInterrupt

来自分类Dev

在不关闭生成器的情况下引发异常

来自分类Dev

在广泛异常的情况下,不会引发或捕获KeyboardInterrupt

来自分类Dev

下载任务在没有网络的情况下引发异常

来自分类Dev

在不使用JPanel的情况下在JList上添加JScrollPane

来自分类Dev

在没有Xcode的情况下在AppStore上提交应用

来自分类Dev

在没有UIDocumentInteractionController的情况下在Instagram / WhatsApp上共享

来自分类Dev

在源代码不变的情况下在 Github 上创建发布

来自分类Dev

在没有 sapply 的情况下在向量上运行函数

来自分类Dev

在不使用 $_GET 的情况下在表单上显示错误

来自分类Dev

在没有重定向的情况下在Rails控制器中引发警报/通知

来自分类Dev

如何在不引发 SyntaxError 的情况下在列表中使用范围变量?

来自分类Dev

scrollr.js动画仅在位置固定的情况下发生在元素上

来自分类Dev

我们如何在没有任何JavaScript的情况下在QML中声明枚举?

来自分类Dev

在不声明的情况下在单个返回行中使用对象

来自分类Dev

如何在没有引导的情况下在较低分辨率下正确定位图像?

来自分类Dev

如何在不与好友或声明指针友好的情况下在类主体中前向声明未嵌套的类

来自分类Dev

在没有终端的情况下在Linux上的mpv上打开外部字幕

来自分类Dev

在位图上绘图未在Android屏幕上显示

来自分类Dev

如何在位图(Winforms)上绘制清晰的文本?

来自分类Dev

如何在位图图像上绘制对数轴

来自分类Dev

在不停止节点服务器的情况下在节点应用程序中引发sqlite插入错误

Related 相关文章

  1. 1

    如何在不重新分配的情况下在位图和位图源之间共享像素数据?

  2. 2

    在不调用原始Exception的情况下在Except中引发异常

  3. 3

    如何在不使用Java代码的情况下在Mule ESB中手动引发异常

  4. 4

    我可以在没有回滚的情况下在python金字塔中引发异常吗?

  5. 5

    默认情况下在包装中声明了permisisons CAMERA

  6. 6

    如何在没有反走样的情况下在Photoshop中缩放位图?

  7. 7

    在不使用Callable的情况下从线程引发异常?

  8. 8

    在广泛异常的情况下,不会引发或捕获KeyboardInterrupt

  9. 9

    在不关闭生成器的情况下引发异常

  10. 10

    在广泛异常的情况下,不会引发或捕获KeyboardInterrupt

  11. 11

    下载任务在没有网络的情况下引发异常

  12. 12

    在不使用JPanel的情况下在JList上添加JScrollPane

  13. 13

    在没有Xcode的情况下在AppStore上提交应用

  14. 14

    在没有UIDocumentInteractionController的情况下在Instagram / WhatsApp上共享

  15. 15

    在源代码不变的情况下在 Github 上创建发布

  16. 16

    在没有 sapply 的情况下在向量上运行函数

  17. 17

    在不使用 $_GET 的情况下在表单上显示错误

  18. 18

    在没有重定向的情况下在Rails控制器中引发警报/通知

  19. 19

    如何在不引发 SyntaxError 的情况下在列表中使用范围变量?

  20. 20

    scrollr.js动画仅在位置固定的情况下发生在元素上

  21. 21

    我们如何在没有任何JavaScript的情况下在QML中声明枚举?

  22. 22

    在不声明的情况下在单个返回行中使用对象

  23. 23

    如何在没有引导的情况下在较低分辨率下正确定位图像?

  24. 24

    如何在不与好友或声明指针友好的情况下在类主体中前向声明未嵌套的类

  25. 25

    在没有终端的情况下在Linux上的mpv上打开外部字幕

  26. 26

    在位图上绘图未在Android屏幕上显示

  27. 27

    如何在位图(Winforms)上绘制清晰的文本?

  28. 28

    如何在位图图像上绘制对数轴

  29. 29

    在不停止节点服务器的情况下在节点应用程序中引发sqlite插入错误

热门标签

归档