zoukankan      html  css  js  c++  java
  • Listbox添加右键菜单

    转自:http://www.cnblogs.com/netlyf/archive/2011/04/04/2005155.html

    在Visual Studio窗口里增加一个ListBox和ContextMenuTrip,把ListBox的ContextMenuTrip设置成“(无)”,也就是不要和ContextMenuTrip控件关联,然后对ListBox的MouseUp事件编程。

    private void listBox1_MouseUp(object sender, MouseEventArgs e)
    {
      if (e.Button == MouseButtons.Right)
      {
        int posindex = listBox1.IndexFromPoint(new Point(e.X, e.Y));
    listBox1.ContextMenuStrip = null;
    if (posindex >= 0 && posindex < listBox1.Items.Count)
    {
    listBox1.SelectedIndex = posindex;
    contextMenuStrip1.Show(listBox1,new Point(e.X,e.Y));
    }
    }
    listBox1.Refresh();
    }

    注:ContextMenuStrip 控件提供了与某个控件关联的快捷菜单。也就是说通过这个控件可以方便的实现在别的控件上弹出右键快捷菜单。

    我给你个例子:

    1、先添加一个ContextMenuStrip 控件到Form上
    2、设置目标控件(如窗体、文本框等)的ContextMenuStrip属性,指向你刚才添加的ContextMenuStrip 控件。这样就实现了两者的关联。
    3、动态将一些菜单项添加到 ContextMenuStrip 控件中,如:

    //上下文菜单项 ContextMenuStrip1.Items.Add(msEditNew); ContextMenuStrip1.Items.Add(msEditBar1); ContextMenuStrip1.Items.Add(msEditCut); ContextMenuStrip1.Items.Add(msEditPaste); ContextMenuStrip1.Items.Add(msEditDelete); ContextMenuStrip1.Items.Add(msEditBar2); 这样就OK了,你在目标控件上按右键时将弹出快捷菜单。

    注:获得ContextMenuStrip的关联控件,可以用SourceControl属性得到,该属性获取使此ContextMenuStrip 被显示的控件。如下例:

    private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
     {
          ListBox listbox = contextMenuStrip1.SourceControl as ListBox;//获取contextMenuStrip的关联控件
          int i = listbox.SelectedIndex;
          listbox.Items.Remove(listbox.Items[i]);
    }
  • 相关阅读:
    前台查询条件参数多时封装成一个bean
    struts2操作json成字符串格式错误被转义及其前台访问json对象的方法
    hibernate第一课第一个自己的helloworld
    easyui中的tree数据使用说明
    css设计课堂笔记,有关样式的
    前台取json对象中的数据
    myeclipse自动生成代码SSH2
    jquery获取子对象操作
    iframe自适应高度调整
    组织配置java项目的外部lib包
  • 原文地址:https://www.cnblogs.com/wupeiqi/p/3067032.html
Copyright © 2011-2022 走看看