在ListView中添加了一个contextMenuStrip。
结果 出现一个现象,即使 我在ListView中没有选定项。那么我鼠标右键的时候,一样可以打开 菜单 ,这样不好。
那么,应该理想的是这样的。只有当右边ListView 出现了选定项目后,才可以出现右键菜单。
下面是解决方法:
首先双击?contextMenuStrip 触发?contextMenuStrip1_Opening 事件
然后 在?contextMenuStrip1_Opening ? 处理逻辑。
?private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
? ? ? ? {
? ? ? ? ? ? //处于listview 虚拟模式的时候: 采用listView1.SelectedIndices; 判断是否有选定项。如果没有选定项,鼠标右键不出现菜单
? ? ? ? ? ? ListView.SelectedIndexCollection c = listView1.SelectedIndices;
contextMenuStrip 显示前判断选定项_contextmenustrip
? ? ? ? ? ? if (c.Count>0)
? ? ? ? ? ? {
? ? ? ? ? ? }
? ? ? ? ? ? else
? ? ? ? ? ? {
? ? ? ? ? ? ? ?e.Cancel = true;
? ? ? ? ? ? }
? ? ? ? }
如上面是这样的。如果没有选定项目的话,那么直接 ?e.Cancel = true; 就可以了。
这样就可以完成 对?contextMenuStrip 右键的合理处理了。