2014-02-11 246 views
3

所以我有我的代碼,它是一種工作...當我點擊右鍵時,它顯示listview上的contextmenu,但我不認爲選擇案例工作,當我點擊在編輯或刪除時,沒有任何反應。這是我的代碼ListView右鍵點擊VB.Net

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 

謝謝!

回答

2

Select Case塊不起作用,因爲文本是"&edit""&delete"&將作爲Text屬性的一部分出現。

請注意,如果你要定製ContextMenuHanndler功能爲每個被點擊,然後按項目更好的策略是隻爲每一個

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 
不同的處理程序