无法将上下文菜单中的图像加载为图标



我正在尝试使用以下链接中的代码:

VB-Helper在Visual Basic.NET 中使用图像、快捷键和事件处理程序在运行时创建菜单项

唯一的区别是,我想要一个本地图像,而不是来自我的。资源

我有以下内容:

''Tool 2 displays a string and image.
Dim tool2 As New ToolStripMenuItem("Tool 2", (Image.FromFile("C:testicon.jpg")))
tool2.Name = "mnuToolsTool2"
tool2.ShortcutKeys = (Keys.D2 Or Keys.Control) ' Ctrl+2
AddHandler tool2.Click, AddressOf mnuTool2_Click
ToolStripMenuItem1.DropDownItems.Add(tool2)

我无法重现此"错误"。然而,从给定的文本、代码和链接来看,我的最佳猜测如下:

  1. 您使用的是64位机器
  2. 您在Form.Load事件中运行代码
  3. 此方法中出现错误

Private Sub _Load(sender As Object, e As EventArgs) Handles MyBase.Load
'Code...
Throw New Exception("ooops..")
'Code...
End Sub

正如您可能不知道的那样,在64位机器上的Form.Load中抛出的错误会被系统"吞噬"。

有关更多信息,请阅读SO的这篇文章:为什么表单加载无法捕获异常?

您应该在构造函数中移动代码:

Public Sub New()
Me.InitializeComponent()
'Code goes here...
End Sub

或更改为Form.Shown事件:

Private Sub _Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
Try
'Code goes here...
Catch ex As Exception
MessageBox.Show(ex.Message, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub

相关内容

  • 没有找到相关文章

最新更新