c# 怎么做弹出菜单?各位大虾.... 救命啊....
只能用API吗?

解决方案 »

  1.   

    ContextMenuStrip ,MenuStrip都是的,不知道楼主是哪个
      

  2.   

    楼主说的弹出菜单应该是指ContextMenuStrip的吧
      

  3.   

    ContextMenuStrip ,MenuStrip  有什么不一样吗?
      

  4.   

    那就是ContextMenuStrip,然后把它绑定到你要弹出菜单的控件上
      

  5.   

    //right mouse click
            private void rightMouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Right)
                {
                    ContextMenu cm = new ContextMenu();
                    MenuItem menuItem = new MenuItem("Edit");
                    MenuItem menuItem1 = new MenuItem("&Add", new System.EventHandler(this.popupMenuAction));
                    //menuItem1.Click += new System.EventHandler(this.DoMenuAction);
                    menuItem.MenuItems.Add(menuItem1);
                    cm.MenuItems.Add(menuItem);
                    cm.Show(this, new Point(e.X, e.Y));
                }
            }                private void popupMenuAction(object sender, EventArgs e)
            {
                MenuItem mi = (MenuItem)sender;
                switch (mi.Text)
                {
                    case "Add":
                        MessageBox.Show(action);
                        break;
                }
            }
    但是在鼠标右键弹出的多级菜单中,点击菜单没有反应
      

  6.   

    //right mouse click
            private void rightMouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Right)
                {
                    ContextMenu cm = new ContextMenu();
                    MenuItem menuItem = new MenuItem("Edit");
                    MenuItem menuItem1 = new MenuItem("&Add", new System.EventHandler(this.popupMenuAction));
                    menuItem.MenuItems.Add(menuItem1);
                    cm.MenuItems.Add(menuItem);
                    cm.Show(this, new Point(e.X, e.Y));
                }
            }                private void popupMenuAction(object sender, EventArgs e)
            {
                MenuItem mi = (MenuItem)sender;
                switch (mi.Text)
                {
                    case "&Add":
                        MessageBox.Show(mi.Text);
                        break;
                }
            }结贴,,,  给分