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]);
}
复制代码

 


本文转自武沛齐博客园博客,原文链接:http://www.cnblogs.com/wupeiqi/archive/2013/05/08/3067032.html,如需转载请自行联系原作者

目录
相关文章
|
C#
WPF 左键单击弹出菜单 ContextMenu
原文:WPF 左键单击弹出菜单 ContextMenu WPF中的ContextMenu在XAML中可直接做出来,但是仅限于右键弹出菜单,如果需要添加左键弹出功能,只需要在事件中添加Click事件 XMAL代码如下 ...
2860 0
|
4月前
|
索引
详细解读c#ListBox控件
详细解读c#ListBox控件
25 0
|
5月前
|
C# 数据库 虚拟化
43.c#:listbox控件
43.c#:listbox控件
47 1
Datagrid添加右键菜单
Datagrid添加右键菜单
69 0
|
API 索引 Windows
|
C#
用WPF实现在ListView中的鼠标悬停Tooltip显示
原文:用WPF实现在ListView中的鼠标悬停Tooltip显示 一、具体需求描述     在WPF下实现,当鼠标悬停在ListView中的某一元素的时候能弹出一个ToolTip以显示需要的信息。 二、代码实现 在.XMAL文件中   Code   在listview 元素中加入ItemContainerStyle="{StaticResource InfoTipStyle}" 如下所示代码: Code   三、心得     调用顺序就是listview呈现出预定的style, InfoTipStyle 调用声明好的tooltip。
1806 0
|
C#
wpf datagrid设置右键菜单打开时选中项的背景色
原文:wpf datagrid设置右键菜单打开时选中项的背景色 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huangli321456/article/details/53929433 ...
1445 0
UWP 取消GridView、ListView鼠标选中、悬停效果
原文:UWP 取消GridView、ListView鼠标选中、悬停效果 因为经常碰到ListView或者ListBox之类的选中、鼠标悬停样式和自己设置的主题颜色不搭,这时就需要改变这些样式了. 而这里我通过ListView来说明,大致思路其实就是重新定义Item的Template。
1184 0