日期:2014-05-20  浏览次数:20860 次

listview中鼠标右键的问题
listview设置为Details
我现在想鼠标右键listview中的行时能够有右键

但是如果直接在属性ContextMenuStrip中关联,那么只要在listview中鼠标右键就会出来菜单

我需要的是在listview中选中的行时鼠标右键才有菜单
应该在哪怎么判断下

------解决方案--------------------
对Listview的菜单,在开始的时候不要设置,而是通过下面的代码来设置:
private void listView1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
if (this.listView1.GetItemAt(e.X, e.Y) != null)
{
this.listView1.ContextMenuStrip = this.contextMenuStrip1;
}
else
{
this.listView1.ContextMenuStrip = null;
}
}
}
------解决方案--------------------
一般用的是一楼的方法
二楼这个方法应该也可以
------解决方案--------------------
加一个ContextMenu cm1;
对Listview的菜单,在开始的时候不要设置,而是通过下面的代码来设置:
private void listView1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
if (this.listView1.GetItemAt(e.X, e.Y) != null)
{
cm.Show( listView1 , new Point(e.X,e.Y、));
}
}
}