ListView right-click VB.Net

So, I have my code, and it seems to work ... It shows the context menu in the list when I right-click, but I don’t think this selection case works when I click on edit or delete, Nothing occurred. Here is my code

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
    ComboBox1.SelectedItem = "TRUE"
    Dim ctx As New ContextMenu

    Dim i1 As New MenuItem("&Edit")
    Dim i2 As New MenuItem("&Delete")

    AddHandler i1.Click, AddressOf ContextMenuHandler
    AddHandler i2.Click, AddressOf ContextMenuHandler

    ctx.MenuItems.Add(i1)
    ctx.MenuItems.Add(i2)

    Me.ListView1.ContextMenu = ctx
End Sub

Private Sub ContextMenuHandler(ByVal Sender As Object, ByVal e As EventArgs)
    Dim mi As MenuItem = DirectCast(sender, MenuItem)

    Select Case mi.Text.ToLower()
        Case "edit"
            ListViewToText()
        Case "delete"
            Try
                If ListView1.SelectedItems.Count > 0 Then
                    ListView1.Items.Remove(ListView1.SelectedItems(0))
                End If
            Catch ex As Exception

            End Try
    End Select
End Sub

Thank!

+3
source share
2 answers

The block Select Casedoes not work because the text "&edit"and "&delete". &will appear as part of the property Text.

Please note that if you are going to configure a function ContextMenuHanndlerfor each element that you clicked, then the best strategy would be to simply have a different handler for each

AddHandler i1.Click, AddressOf EditHandler
AddHandler i2.Click, AddressOf DeleteHandler

Private Sub EditHandler(ByVal Sender As Object, ByVal e As EventArgs)
    ListViewToText()
End Sub

Private Sub DeleteHandler(ByVal Sender As Object, ByVal e As EventArgs)
    Try
        If ListView1.SelectedItems.Count > 0 Then
            ListView1.Items.Remove(ListView1.SelectedItems(0))
        End If
    Catch ex As Exception

    End Try
End Sub
+2
source
Dim i1 As New MenuItem("&Edit")
Dim i2 As New MenuItem("&Delete")

Private Sub ContextMenuHandler(ByVal Sender As Object, ByVal e As EventArgs)
    Dim mi As MenuItem = DirectCast(sender, MenuItem)

    Select Case mi.Text.ToLower()
        Case "edit"
            ListViewToText()
        Case "delete"
            Try
                If ListView1.SelectedItems.Count > 0 Then
                    ListView1.Items.Remove(ListView1.SelectedItems(0))
                End If
            Catch ex As Exception

            End Try
    End Select

"" "& " , .

0

All Articles