加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 右键菜单和菜单行

发布时间:2020-12-16 01:42:59 所属栏目:百科 来源:网络整理
导读:目标: 右键单击列表视图并选择其他选项. 问题: 有两个问题: *当我点击右键时,菜单的左角并不完全位于箭头的位置. *如何在菜单中创建一行? 关于菜单的主要问题 需要支持来创建这两个redmark. private void lstV_Stock_MouseUp(object sender,MouseEventAr
目标:
右键单击列表视图并选择其他选项.

问题:
有两个问题:
*当我点击右键时,菜单的左角并不完全位于箭头的位置.
*如何在菜单中创建一行?

关于菜单的主要问题

需要支持来创建这两个redmark.

private void lstV_Stock_MouseUp(object sender,MouseEventArgs e)
{
    switch (e.Button)
    {

        // Right mouse click
            case MouseButtons.Right:


                ContextMenu myContextMenu = new ContextMenu();

                MenuItem menuItem1 = new MenuItem("New product");
                MenuItem menuItem2 = new MenuItem("Delete");
                MenuItem menuItem3 = new MenuItem("Add quantity");


                // Clear all previously added MenuItems.
                myContextMenu.MenuItems.Clear();

                myContextMenu.MenuItems.Add(menuItem1);
                myContextMenu.MenuItems.Add(menuItem2);
                myContextMenu.MenuItems.Add(menuItem3);

                if (lstV_Stock.SelectedItems.Count > 0) 
                {

                    foreach (ListViewItem item in lstV_Stock.SelectedItems)
                    {
                        myContextMenu.MenuItems[1].Visible = true;
                        myContextMenu.MenuItems[2].Visible = true;
                        myContextMenu.MenuItems[0].Visible = false;
                    }

                }
                else
                {
                    myContextMenu.MenuItems[1].Visible = false;
                    myContextMenu.MenuItems[2].Visible = false;
                    myContextMenu.MenuItems[0].Visible = true;
                }

                myContextMenu.Show(lstV_Stock,this.PointToClient(Cursor.Position),LeftRightAlignment.Right);



                menuItem1.Click += new System.EventHandler(this.menuItem1_Click);


                break;

        }

解决方法

对于定位,您可以更换您的

myContextMenu.Show(lstV_Stock,LeftRightAlignment.Right);

myContextMenu.Show(lstV_Stock,e.Location(),LeftRightAlignment.Right);

或者e.X,e.Y.不是来自this.PointToClient,而是来自生成事件的MouseEventArgs.你可以检查wahat MouseEvent有here.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读