• 在ListBox中实现右键菜单,需要注意的细节




    本段代码实现的目标:
      blue区域不显示contextmenu,橙色范围显示contextmenu
      就是当mouse右键点击listbox中的存在项上,才显示contextmenu,其他范围不显示contextmenu.
    private void listBox1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
      {
       if(e.Button == MouseButtons.Right)
       {
        //listBoxItem Total Height
        int listBoxItemToTalHeight = listBox1.Items.Count * listBox1.ItemHeight;
        int currentIndex = e.Y /12;
        if(SqlInt32.Mod(currentIndex,12) == 0)
        {
         currentIndex = currentIndex;
        }
        if(e.Y > listBoxItemToTalHeight)
        {
         this.listBox1.ContextMenu = this.contextMenu1;
         contextMenu1.MenuItems[0].Visible = false;
        }
        else
        {
         this.listBox1.ContextMenu = this.contextMenu1;
         contextMenu1.MenuItems[0].Visible = true;
         if(listBox1.SelectedItem != null && currentIndex != listBox1.SelectedIndex)
         {
          this.listBox1.SetSelected(listBox1.SelectedIndex,false);
         }
         this.listBox1.SetSelected(currentIndex,true);
         this.listBox1.ContextMenu.Show(listBox1,new Point(e.X,e.Y));
        }
       } 
      }

  • 相关阅读:
    英语----非谓语动词to do
    英语----非谓语动词done
    英语----三大从句的混合实战
    英语----状语从句连接词(下)
    英语----状语从句连接词(中)
    英语----状语从句连接词(上)
    xcode7.3遇到的问题
    UIScrollView AutoLayout
    cocoapods 卸载  &  安装
    iOS即时通讯之CocoaAsyncSocket源码解析五
  • 原文地址:https://www.cnblogs.com/RuiLei/p/380401.html
Copyright © 2020-2023  润新知