当用户单击上下文菜单内的MenuItem时,我试图显示消息框警报。这是上下文菜单代码:

    public Form1()
    {
        MenuItem mni = new MenuItem();
        mni.Text = "BackLog Task";
        mni.MenuItems.Add("Backlog Task (1)");
        mni.Click += new EventHandler(this.mni_Click);

        contextMenu1.MenuItems.Add(mni);

        notifyIcon1.Visible = true;
        notifyIcon1.Icon = new System.Drawing.Icon
           (System.Environment.GetFolderPath
           (System.Environment.SpecialFolder.Personal)
           + @"\icon.ico");
        notifyIcon1.Text = "Right-click me!";
        notifyIcon1.ContextMenu = contextMenu1;

        InitializeComponent();
    }


这是click事件处理程序:

    void mni_Click(object sender, EventArgs e)
    {
        MessageBox.Show("Back Log Event Handler");
    }


但是click事件永远不会触发。有谁知道可能是什么错误吗?

最佳答案

您的MenuItem具有后代,并在其上添加:

mni.MenuItems.Add("Backlog Task (1)");


如果您选择the documentation for the Click event,则明确指出(粗体是我的):


  如果MenuItem的MenuItems属性包含任何项目,则不会引发此事件。父菜单项不会引发此事件。

10-06 03:19