2015年8月11日火曜日

Vb.net メニューアイテムを動的な配列にしてみた

メニューアイテムは通常は、動的に変化させてつかうことは少ないかもしれないが、設定ファイルサイズに合わせて、動的に項目数を変化させられれば便利かと思い、試してみました。

Public Class Form1
.......
 Dim snm() As String
 Dim sumax as Integer
 Dim DpItem As ToolStripMenuItem() = New ToolStripMenuItem() {}

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
...............ここで、sumax行のデータをファイル(SURLP)から読み出し、snm()がデータだとすれば
 Try
   snm = Split(SURLP, vbCrLf)
   sumax = snm.Length
   ReDim DpItem(sumax)
        For i As Integer = 0 To sumax - 1
             ..............
            ToolStripMenuItem4.DropDownItems.Add(snm(i))
            DpItem(i) = ToolStripMenuItem4.DropDownItems(i)
            AddHandler DpItem(i).Click, AddressOf DpItem_Click
        Next
...........
        Try
......snumをファイルから読み出す
            For i As Integer = 0 To sumax - 1
                If i = Int(snum) Then
                    DpItem(i).Checked = True
                Else
                    DpItem(i).Checked = False
                End If
            Next
        Catch ex As Exception
         
        End Try

   End Sub

 Private Sub DpItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim ic As Integer
        For i As Integer = 0 To sumax - 1
            If sender.ToString = snm(i) Then
                Try
                    ....ここでiをファイルに保存              
                    ic = i
                Catch ex As Exception
                    MsgBox(snm(i) + "ログインのショートカットがありません")
                End Try
            End If
        Next

        For i As Integer = 0 To sumax - 1
            If i = ic Then
                DpItem(i).Checked = True
            Else
                DpItem(i).Checked = False
            End If
        Next
 End Sub


0 件のコメント:

コメントを投稿