DropDownMenuItem检查应该取消选中其他DropDownMenuItems

时间:2018-01-05 21:09:45

标签: vb.net winforms drop-down-menu visual-studio-2017 toolstripmenu

我在运行时创建了ToolStripMenuItem的DropDownItems。

    Me.mnuExtrasSecondaryLCID.DropDownItems.Clear()

    Dim iCount As Integer = -1

    For Each nLang As clsLanguage In g_LCIDs
        If nLang.IsLeader Then

            iCount += 1

            Dim n As New ToolStripMenuItem
            n.Name = "mnuSecondaryLCID" & iCount.ToString()
            n.Text = nLang.Title
            n.Tag = nLang.LCID
            n.Available = True
            n.CheckOnClick = True

            Me.mnuExtrasSecondaryLCID.DropDownItems.Add(n)

            AddHandler n.Click, AddressOf Me.SecondaryLCIDClick

        End If
    Next

这很好用。

当我在运行时检查其中一个DropDownItem时,同一个"列表中的任何其他DropDownItem"保持检查。 我希望只检查一个(=最后点击一个)。

是否存在允许我自动执行此操作的属性,还是需要通过手动取消选中所有其他DropDropItem来对其进行编码?

1 个答案:

答案 0 :(得分:0)

您需要手动编码。单击子菜单时,取消选中所有其他兄弟姐妹:

For index = 1 To 5
    Dim subMenu = New ToolStripMenuItem(index.ToString())
    subMenu.CheckOnClick= True
    AddHandler subMenu.Click, Sub(obj, arg)
        Dim item = DirectCast(obj, ToolStripMenuItem)
        For Each sibling In item.Owner.Items.OfType(Of ToolStripMenuItem).Except({obj})
           sibling.Checked = False
        Next sibling
    End Sub
    Menu1ToolStripMenuItem.DropDownItems.Add(subMenu)
Next