タイトル | : インデックスが配列の境界外です。 |
記事No | : 9474 |
投稿日 | : 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) {} この辺りの配列の仕方が違うのかなとも思っていますが判断がつきません。
このエラーが発生しない為に修正を行いたいです。 学習した方が良い項目やコードの指摘を教えて頂きたいです。 よろしくお願いします。
|