先判断左键按下了,然后调用
ContextMenu.Show()方法!!!

解决方案 »

  1.   

    see:在form1中实现左键调用contextMenu1private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    if(e.Button==MouseButtons.Left)
    {
    Point p=new Point(e.X,e.Y);
    contextMenu1.Show(this,p);
    }
    }
      

  2.   

    可是位置怎么获取呢?
    contextMenu1.Show(control,control.Location);
    出现的位置,不是在control的上方
      

  3.   

    to: BearRui(我有点笨,但我很特别,所以我特别笨!) 
    我照你的方法做了,可出错提示是:未将对象引用设置到对象实例。
      

  4.   

    你有没有放你一个contextMenu1控件到你的窗体上。还有就是你contextMenu1的要已经有菜单,不然也不会显示任何东西!!!
      

  5.   

    to: BearRui(我有点笨,但我很特别,所以我特别笨!) 
    我放了,而且已经有菜单了,右键没问题。就是左键出错
      

  6.   

    不可能啊,我试了绝对没问题。如果抱错的是contextMenu1.Show(this,p);句的话。就看你的弹出菜单名字是不是contextMenu1了!!!
      

  7.   

    上面代码我是测试过的,觉的没错:private System.Windows.Forms.ContextMenu contextMenu1;
    private System.Windows.Forms.MenuItem menuItem1;
    private System.Windows.Forms.MenuItem menuItem2;private void InitializeComponent()
    {
        this.menuItem1 = new System.Windows.Forms.MenuItem();
    this.menuItem2 = new System.Windows.Forms.MenuItem(); // 
    // contextMenu1
    // 
    this.contextMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
     this.menuItem1,
        this.menuItem2});
    // 
    // menuItem1
    // 
    this.menuItem1.Index = 0;
    this.menuItem1.Text = "asdq";
    // 
    // menuItem2
    // 
    this.menuItem2.Index = 1;
    this.menuItem2.Text = "aff";
    this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseDown);
    }private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    if(e.Button==MouseButtons.Left)
    {
    Point p=new Point(e.X,e.Y);
    contextMenu1.Show(this,p);
    }
    }
      

  8.   

    to: BearRui(我有点笨,但我很特别,所以我特别笨!) 
    谢谢你,出来了,是因为我把控件的name给弄错了。:)
      

  9.   

    to: BearRui(我有点笨,但我很特别,所以我特别笨!) 
    是,错的是我。谢谢!