下面是我找的别人一段代码,是关于限制右健的方法,
public class myTextBox : System.Windows.Forms.TextBox
    {
        private const int WM_RBUTTONDOWN    = 0x204;
        private const int WM_RBUTTONUP      = 0x205;
        private const int WM_RBUTTONDBLCLK  = 0x206;        protected override void WndProc(ref Message m)
        {
            if (this.ContextMenuStrip == null)
            {
                if (m.Msg == WM_RBUTTONDOWN || 
                    m.Msg == WM_RBUTTONUP || 
                    m.Msg == WM_RBUTTONDBLCLK)
                {
                    return;
                }
            }            
            base.WndProc(ref m);            
        }
    }
但是我不知道怎么用,怎么在我自己的程序中加载上去,还有他的程序里有“(ref Message m)”
那就就要应用:
using System.Messaging;
但是我却点不 Messaging,请高手们指点一下,我应该怎么做才能调通我的程序?

解决方案 »

  1.   

    private void textBox1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    if(e.Button == MouseButtons.Right )
    {
    textBox1.ContextMenu = contextMenu1; } }
    创建一个contextMenu1不做任务动作
      

  2.   

    这段代码的意思是从TextBox继承一个类出来,在这个类里重写WndProc消息循环函数,如果是鼠标右键点击的消息,就不处理直接跳过;其他的就执行基类消息循环。
      

  3.   

    把你的程序加到你窗体类的后面,记住不是里面;
    然后用myTextBox替换TextBox即可。
      

  4.   

    if (this.ContextMenuStrip == null)
    说这个没有定义的
      

  5.   

    form初始化的时候textBox1.ContextMenu = new ContextMenu();