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/
运算符"!="无法应用于“方法组”和“<null>”类型的操作数
private void Form_Load(object sender, EventArgs e)
{
ContextMenuStrip cms = new ContextMenuStrip();
cms.Name = "cms";
cms.Items.Add("查看原始目录", null);
cms.Items.Add("修改非标信息", null);
this.ContextMenuStrip = cms;
cms.Opening +=new CancelEventHandler(cms_Opening);
}
private void cms_Opening(object sender,CancelEventArgs e)
{
if (this.listView.SelectedItems.Count == 0) { e.Cancel = true; }
if (Program.Usergroup != "工程部") { e.Cancel = true; }
}不需要listView_MouseClick
if (listview.SelectedIndices != null && listview.SelectedIndices.Count>0)
{
if (!e.IsSelected)
{
...
}
}
貌似不行,可能是多了前面一句listview.SelectedIndices != null
几位大大,
1.我提供的解决办法是不是有什么不妥的地方?
2.在ListView选中的情况下,在Listview控件以外的窗体空白处右键也是会有菜单,可以避免吗?是不是还得判断鼠标位置是不是在ListView控件内?代码怎么写?
3.菜单添加项时为ToolStripItemCollection.Add(string text,Image image,EventHandler onClick),能说明一下这三项是怎么添加吗?目前只知道第一项是指菜单显示的文本与第三项是指定发生的事件,第二项图标实在不知道是要怎么添加,请指导一下,谢谢。
cms.Name = "cms";
cms.ImageList = this.toolIcon;
ToolStripMenuItem mt1 = new ToolStripMenuItem("测试看看");
mt1.ImageKey = "Search";
cms.Items.Add(mt1);
cms.Items.Add("-");现在知道怎么加图标了