准备对MenuStrip的每一个ToolStripMenuItem都做一个右键菜单,
ToolStripMenuItem本身没有ContextMenuStrip属性。
所以只能通过contextMenuStrip1.Show(Control.MousePosition);的方式弹出,
但是MenuStrip的位置始终在右上角。
不知道为什么。 
通过跟踪断点Control.MousePosition的x,y的值都是正确的。
而且无论设置contextMenuStrip1的top和left为什么值,它的值还是为零
求解答。

解决方案 »

  1.   

    如果不需要菜单本身的功能,而只是要名字,那不如用LABEL好了!
      

  2.   

    .....设计要求的,我也不想。谁让咱只是coding,coding,coding。
      

  3.   

    其实用lable代替也不是不可以。。不过为什么设定contextMenuStrip1.Show(Control.MousePosition);
    或设置left和top都不好用呢?
      

  4.   

    问题解决了 ,因为设置了
    contextMenuStrip1.OwnerItem为一个ToolStripMenuItem。
    因为contextMenuStrip1只有一个,所以想通过设定OwnerItem来区别。。
    没想到阿。这是为什么呢??????
    现在改成用全局变量来弄了。OK拉。呵呵。
    但就是想不明白设定OwnerItem和位置有什么关系。最关键的是设的OwnerItem还是form里的控件。
      

  5.   

    在没有事先将contextMenuStrip1绑定到一个控件上时,通过先将contextMenuStrip1.Visiable设为ture再设置显示位置才不会飞到屏幕左上角,如果先设置contextMenuStrip1的显示位置再Visiable=True的话就会飞了,我是这样做的
      

  6.   

    在我这如果不设置OwnerItem的话,Visiable等于什么都不会飞....