1

次のリンクのコードを使用しようとしています。

VB- Helper Visual Basic .NET でイメージ、ショートカット キー、およびイベント ハンドラーを使用して、実行時にメニュー項目を作成します。

唯一の違いは、my.Resources のイメージではなく、ローカル イメージが必要なことです。

私が持っているものは次のとおりです。

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

1 に答える 1

0

この「エラー」を再現できませんでした。ただし、指定されたテキスト、コード、およびリンクから、私の最善の推測は次のとおりです。

  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
于 2014-02-19T16:53:17.163 に答える