Как отключить и получить имя для элемента управления в FlowLayoutPanel из ContextMenuStrip в VB.Net

Моя программа содержит кнопки в FlowLayoutPanel,
Я хочу отключить любую кнопку, если щелкнуть по ней правой кнопкой мыши и нажать "Отключить" в ContextMenuStrip,

Мой код:

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        For i As Integer = 0 To 30
            Dim btn As New Button
            btn.Name = i
            btn.Text = i
            btn.ContextMenuStrip = ContextMenuStrip1
            FlowLayoutPanel1.Controls.Add(btn)
        Next
    End Sub

End Class

введите описание изображения здесь

1 ответ

Решение

Объявить публичную переменную для сохранения контроля

    public ctrl as button = nothing

Вы можете создать правый клик, поместив этот код на мышь вниз...

If e.Button <> Windows.Forms.MouseButtons.Right Then Return
        Dim cms = New ContextMenuStrip

        ctrl = sender

        Dim item1 = cms.Items.Add("Disable")
        item1.Tag = 1
        AddHandler item1.Click, AddressOf Disable
end if 

и в сабвуфере вы можете кодировать как это...

Private Sub Disable()
    ctrl.enabled = false
End Sub
Другие вопросы по тегам