-------------------------------------------------------------------------------------------- Public Class Form1 Inherits System.Windows.Forms.Form Private selected As String = "" Private cm As New ContextMenu #Region " Windows Form Designer generated code " #End Region Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load cm.MenuItems.Add("Text1", AddressOf mnuHandler) cm.MenuItems.Add("Text2", AddressOf mnuHandler) cm.MenuItems.Add("Text3", AddressOf mnuHandler) cm.MenuItems.Add("Text4", AddressOf mnuHandler) End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click selected = "INIT" cm.Show(TextBox1, New Point(0, 0)) 'IF THE LINE BELOW IS UNCOMMENTED, THE CODE WORKS 'MsgBox("delay") 'must display the clicked menuitem's text MsgBox(selected) End Sub Private Sub mnuHandler(ByVal sender As Object, ByVal e As System.EventArgs) selected = CType(sender, MenuItem).Text 'this displays the correct selected menuitem's text MsgBox(selected + " inside") End Sub End Class --------------------------------------------------------------------------------------------