winform程序  窗体上拖放一个textbox文本框  ,鼠标放上去 点右键 弹出自己的对话框,并且屏蔽系统弹出的对话框(粘贴,复制,全选等选项) 主要是系统弹出的怎么屏蔽掉??  求方法? 

解决方案 »

  1.   

    重写TextBox类.using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Windows.Forms;
    namespace WindowsApplication13
    {
        class MyTextBox:TextBox
        {
            public event RclickdEventHandler rclick;        const int WM_RBUTTONDOWN = 0x204;
            protected override void WndProc(ref System.Windows.Forms.Message m)
            {
                if (m.Msg == WM_RBUTTONDOWN)
                {
                    EventArgs e = new EventArgs();
                    rclick(this, e);
                    return;
                }
                base.WndProc(ref m);
            }
        }
        public delegate void RclickdEventHandler(object sender, EventArgs e);
    }
      

  2.   

    TextBox有一个ShortcutsEnabled属性,设置为False可以禁用右键菜单。
      

  3.   

    另外:
    使用 ShortcutsEnabled 属性来启用或禁用下面的组合快捷键: Ctrl+Z Ctrl+E Ctrl+C Ctrl+Y Ctrl+X Ctrl+Backspace Ctrl+V Ctrl+Delete Ctrl+A Shift+Delete Ctrl+L Shift+Insert Ctrl+R可以重写此属性以指定其他快捷键。你可以处理TextBox的WndProc,在WndProc中处理0x7b这个消息,这就是弹出右键菜单的消息,不调用Base.WndProc而直接返回就不会弹出菜单了。