C# ListView鼠标单击事件
我有一个ListView,我想在右键单击某个项目时显示一个上下文菜单,在ListView控件中单击时显示另一个上下文菜单。我遇到的问题是MouseClick事件仅在右键单击项目时触发,而不是控件。这是什么原因造成的?我怎样才能避免它呢?使用MouseUp而不是MouseClick!很抱歉。应该更努力地搜索。您可以将ListView子类化以添加右键单击事件:C# ListView鼠标单击事件,c#,listview,C#,Listview,我有一个ListView,我想在右键单击某个项目时显示一个上下文菜单,在ListView控件中单击时显示另一个上下文菜单。我遇到的问题是MouseClick事件仅在右键单击项目时触发,而不是控件。这是什么原因造成的?我怎样才能避免它呢?使用MouseUp而不是MouseClick!很抱歉。应该更努力地搜索。您可以将ListView子类化以添加右键单击事件: using System; using System.Collections.Generic; using System.Text; usi
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
namespace MyCustomControls
{
public delegate void MyDelegate(Object sender, EventArgs e);
class MyListView : ListView
{
private static readonly object EventRightClickRaised = new object();
public MyListView()
{
//RightClick += new MyDelegate(OnRightClick);
}
public event EventHandler RightClick
{
add
{
Events.AddHandler(EventRightClickRaised, value);
}
remove
{
Events.RemoveHandler(EventRightClickRaised, value);
}
}
protected override void OnMouseUp(MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
OnRightClick(EventArgs.Empty);
}
base.OnMouseUp(e);
}
protected void OnRightClick(EventArgs e)
{
EventHandler RightClickRaised = (EventHandler)Events[EventRightClickRaised];
if (RightClickRaised != null)
{
RightClickRaised(this, e);
}
}
}
}
我也有类似的问题(想要捕捉控件上的右键单击),解决方案是使用MouseEnter()。应该对您想做的事情有帮助。您能将asp.net控件的代码和html输出放在页面中吗?