tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル インデックスが配列の境界外です。
投稿日: 2009/10/17(Sat) 11:11
投稿者tecc
[VB2008]
.NET暦は浅いです。

Public Class MainForm

    Private Sub MainForm_Load(ByVal sender As Object, _
                              ByVal e As System.EventArgs) Handles Me.Load
        Dim mmu As New MakeMenu(Me.MenuStrip1)
        Call mmu.AddMainList(4, "ファイル(&F)", "編集(&E)", _
                        "表示(&V)", "設定(&S)", "ヘルプ(&H)")
    End Sub
End Class

Imports System.Windows.Forms
Public Class MakeMenu
    Private msn As MenuStrip
    '初期化
    Public Sub New(ByVal formmenu As MenuStrip)
        msn = formmenu
    End Sub

    '[Expl] :メニュー項目の追加
    '[in]   :MenuNum :メニューの数 MenuName : メニューの名前
    Public Sub AddMainList(ByVal MenuNum As Integer, _
                           ByVal ParamArray MenuName() As String)
        Dim item() As ToolStripMenuItem = New ToolStripMenuItem(MenuNum) {}
        Dim i As Integer
        'Try
        For i = 0 To MenuNum
            item(i).Text = MenuName(i) ←エラー箇所
            msn.Items.Add(item(i))
        Next
        'Catch ex As Exception
        '    MessageBox.Show(Convert.ToString(i) & "番目のメニュー作成でエラー")
        'Finally

        'End Try
    End Sub
End Class

MenuStrip1のメニューを作成するに辺り上記のようなコードを作成してみました。
実行を行うと「インデックスが配列の境界外です。」左記のエラーが発生します。

配列のインデックスは0から4までの5つですので、インデックスが負の整数であったり
しない事はブレークポイントを設定して確認済みです。

Dim item() As ToolStripMenuItem = New ToolStripMenuItem(MenuNum) {}
この辺りの配列の仕方が違うのかなとも思っていますが判断がつきません。

このエラーが発生しない為に修正を行いたいです。
学習した方が良い項目やコードの指摘を教えて頂きたいです。
よろしくお願いします。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。