トップ ページ > VisualBasic 2010(express) > VisualBasic 2010(express)でのToolStripの動的作成と使用

VisualBasic 2010(express)でのToolStripの動的作成と使用

ToolStripの作成

今回作成する画面

Public Class Form1

	Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
		'メニューストリップの作成
		Dim arrayアイテム = {"アイテム1", "アイテム2", "アイテム3", "アイテム4", "アイテム5"}
		For i = 0 To UBound(arrayアイテム) Step 1
			'子アイテムの作成
			Me.ToolStripSplitButton1.DropDownItems.Add(arrayアイテム(i), Nothing, Nothing)
			'名前の指定
			Me.ToolStripSplitButton1.DropDownItems.Item(i).Name = "ToolStrip" & arrayアイテム(i)
			'チェック可能にする
			CType(Me.ToolStripSplitButton1.DropDownItems.Item(i), ToolStripMenuItem).CheckOnClick = True
		Next

		'ToolStripのイベントをハンドルする
		AddHandler ToolStripSplitButton1.DropDownItemClicked, AddressOf MenuItem_Click
	End Sub

	'イベントを受け取り処理するプロシージャ
	Private Sub MenuItem_Click(sender As System.Object, e As ToolStripItemClickedEventArgs)

		'■■■ ここがうまく判定しない。判定が一回遅れるので逆になる(現在調査中) ■■■
		'現時点でチェックが付いているか判断
		Dim tsmi As ToolStripMenuItem
		For Each tsmi In Me.ToolStripSplitButton1.DropDownItems
			If tsmi.Checked = True Then
				MsgBox(tsmi.Name & " " & tsmi.Checked)
			End If
		Next

		'何番目がクリックされたか
		MsgBox(Me.ToolStripSplitButton1.DropDownItems.IndexOf(e.ClickedItem))
	End Sub
End Class

実はこれ、判定部分がまだ良くわからない。
どれをクリックしたかの判定は可能だが、クリックしたものの現状がよくわからない。