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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |