ListView 右键菜单绑定(空白区域移出)

来源:互联网 发布:ubuntu wine qq 16.04 编辑:程序博客网 时间:2024/05/17 04:11

最近在最一个图标显示的页面,需要用到ListView的大图标格式

还要添加右键菜单,只有当区域内有值的时候才显示右键快捷菜单,上网页查了很多资料,终于发现了方法

一共需要添加三个事件

鼠标点击,鼠标释放,和Item值选择修改

 

       /// <summary>
        /// 鼠标单击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void lv_MouseClick(object sender, MouseEventArgs e)
        {
            // 鼠标选中项
            ListViewItem lvi = lv.GetItemAt(e.X, e.Y);

            if (lvi != null)
            {
                lv.ContextMenuStrip = this.contextMenuStrip;

            }
        }

 

        /// <summary>
        /// 鼠标释放事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void lv_MouseUp(object sender, MouseEventArgs e)
        {
            if (MouseButtons.Right == e.Button)
            {
                if (lv.GetItemAt(e.X, e.Y) == null)
                {
                    // 移除绑定右键菜单
                    lv.ContextMenuStrip = null;
                }
            }
            else
            {
                // 移除绑定右键菜单
                lv.ContextMenuStrip = null;
            }
        }

 

 

         /// <summary>
        /// ListView选择行列修改事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void lvCarManager_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
        {
            // 遍历数据
            foreach (ListViewItem item in lv.SelectedItems)
            {

                //  绑定右键菜单
                lv.ContextMenuStrip = this.contextMenuStrip;

            }

         }

 

 

这样就可以达到你所想要的效果了

 

原创粉丝点击