自己做了个右键菜单,点击TextBox时出现,不过为什么系统自带的右键菜单,点击右键以后他还会把焦点设在你当前点击右键的控件上,自己做的右键菜单点击后为什么不能定位焦点呢?自己怎么加上?还有像复制粘贴这些功能必须自己重写吗?能否直接额调用系统自带的?

解决方案 »

  1.   

    ContextMenu不是有Popup方法么。不是要指定对象和位置么。你对象指定到哪里,位置就是相对这个对象的。指定到某个控件的0,0,就在这个控件上了。
    复制粘贴需要自己实现,如果文本框,可以用文本框的Copy和Paste
      

  2.   

    你所说的定位焦点应该是指TextBox中的光标插入点吧,一般情况下在打开自定义菜单时焦点被菜单捕获,文本框不再显示光标插入点,但可以显示SelectedText,如果你想在打开定义菜单的时候TextBox中仍然显示光标插入点,可以在打开菜单后将焦点转移到TextBox,而且在转给TextBox之前最好先转给第三个控件再转给TextBox,至于为什么要这样我也不太清楚,这是在实践中发现的,现在假设Form中有Panel和TextBox控件,在打开菜单ContextMenuStrip要使TextBox显示光标插入点,大致代码如下:
    ContextMenuStrip_Opened(object sender, EventArgs e)
    {
        Panel.Focus();
        TextBox.Focus();
    }至于TextBox的复制、粘贴、剪切等功能,可以直接调用TextBox实例的Copy、Paste、Cut方法