图一:
图二:
图三:
工具栏拖一个ContextMenuStrip控件,设置4项,后2项(打开,删除)隐藏Visible=false
4个菜单项分别命名为aaa,bbb,ccc,ddd
利用MouseDown事件,在鼠标单击列头时是不触发MouseDown事件的,这个正好可以利用
当单击的不是列头的时候,就不触发Opening事件
bool mark = false; //标记
private void listView1_MouseDown(object sender, MouseEventArgs e)
{
//ListViewItem item = listView1.GetItemAt(e.X, e.Y); //可以利用这个 当选中某一项时 菜单又不一样
aaa.Visible = false;
bbb.Visible = false;
ccc.Visible = true;
ddd.Visible = true;
mark = true;
}
private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
{
if (!mark)
{
aaa.Visible = true;
bbb.Visible = true;
ccc.Visible = false;
ddd.Visible = false;
}
mark = false;
}
}