首先代码生成人菜单
private void listView_MouseClick(object sender, MouseEventArgs e) { if (Program.Usergroup == "工程部" && e.Button == MouseButtons.Right && this .listView .SelectedItems .Count >0) { ContextMenuStrip cms = new ContextMenuStrip(); cms.Name = "cms"; cms.Items.Add("查看原始目录", null); cms.Items.Add("修改非标信息", null); this.ContextMenuStrip = cms; cms.Show(listView,e.Location); } }
问题:
开始右键是没有菜单的,然后在Listview右键一项后出现菜单,然后不管是在Listview空白的地方还是窗体的任何一个地方右键都会出现这个菜单,好郁闷啊,要怎样解决这个菜单只能在Listview里面选中行的时候右键才出现?
补充一个问题,可不可以图标从ImageList里面添加,代码怎么写?
解决方案
10
private ListViewItem GetItemFromPoint(ListView listView, Point mousePosition)
{
// translate the mouse position from screen coordinates to
// client coordinates within the given ListView
Point localPoint = listView.PointToClient(mousePosition);
return listView.GetItemAt(localPoint.X, localPoint.Y);
}
判断GetItemFromPoint!=null
{
// translate the mouse position from screen coordinates to
// client coordinates within the given ListView
Point localPoint = listView.PointToClient(mousePosition);
return listView.GetItemAt(localPoint.X, localPoint.Y);
}
判断GetItemFromPoint!=null
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
5
触发事件 前面先判断能否选中项 没选就return
5
5
private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) { if (!e.IsSelected) { ... } }
5
listView_MouseClick