在listview控件中怎么才能使我选中的项才弹出上下文菜单的,没有选中就不要弹出菜单的。

解决方案 »

  1.   

    一共就一个菜单,根据选择项来区别属于谁,只需要显示在合适位置即可:
            private void mainList_MouseClick(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Right)
                {
                    ListView list = (ListView)sender;
                    if (list.SelectedItems.Count > 0)
                    {
                        menuList.Show(PointToScreen(e.Location));                }
                }
            }
      

  2.   

    private void lv1_MouseClick(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Right && lv1.SelectedItems.Count == 1)
                {
                    context1.Show(MousePosition);
                }
            }
      

  3.   

    listview lv=new listview();
    ContextMenuStrip cms=new ContextMenuStrip ;
    private void lv1_MouseClick(object sender, MouseEventArgs e)
    {
      if (e.Button == MouseButtons.Right && lv1.SelectedItems.Count == 1)
      {
          lv.ContextMenuStrip=cms;
      }
    }
      

  4.   

    错了,应该是
    listview lv=new listview();
    ContextMenuStrip cms=new ContextMenuStrip ;
    private void lv1_MouseClick(object sender, MouseEventArgs e)
    {
      if (e.Button == MouseButtons.Right && lv1.SelectedItems.Count >0)
      {
      lv.ContextMenuStrip=cms;
      }
    }
      

  5.   

    不要给listview设定contextMenu属性,而是在MouseClick事件里面打开
    private void listView1_MouseClick(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Right)
                {
                    if (listView1.SelectedItems.Count != 0)
                    {
                        contextMenuStrip1.Show(MousePosition);
                    }
                }
            }