日期:2014-05-19  浏览次数:20912 次

屏蔽TextBox右键问题,不解!!!!急!!
WinForm..

在网上找到一段屏蔽textBox右键的代码,按如下方法加入,但总不成功,右键菜单还是有,还是可复制/粘贴等操作,求解!

//在Form1.Designer.cs里加入
private   System.Windows.Forms.TextBox   textBox1=new   TextBoxEx();

//在Form1.cs里加入
public   class   TextBoxEx   :   System.Windows.Forms.TextBox
{
        private   const   int   WM_GETTEXT   =   0x000d;
        private   const   int   WM_COPY   =   0x0301;
        private   const   int   WM_PASTE   =   0x0302;
        private   const   int   WM_CONTEXTMENU   =   0x007B;
        private   const   int   WM_RBUTTONDOWN   =   0x0204;
        public   TextBoxEx()
        {
                //
                //   TODO:   在此处添加构造函数逻辑
                //
        }
        protected   override   void   WndProc(ref   Message   m)
        {
                if   (m.Msg   ==   WM_RBUTTONDOWN   ||   m.Msg   ==   WM_GETTEXT   ||   m.Msg   ==   WM_COPY)   return;//WM_RBUTTONDOWN是为了不让出现鼠标菜单
                base.WndProc(ref   m);
        }
}

------解决方案--------------------
你这样来做:
using System;
using System.Drawing;
using System.Windows.Forms;

namespace ManuApp
{
public class TextBoxNoManu:System.Windows.Forms.TextBox
{
public TextBoxNoManu()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
protected override void WndProc(ref Message m)
{
if(m.Msg != 0x007B)
{
base.WndProc (ref m);
}
}
}
}


------解决方案--------------------
lz的方法就是写了一个自定义控件 编译后 把该自定义控件拖到界面中 效果就和预期的一样哦