我重写textbox的OnMouseDoubleClick也试了。就是不知道重写怎么去掉那功能。
或者各位有更好更简单的方法。分不多。各位大侠赐教。以后还可以给大侠们补上。谢谢注意了。是去除本身的功能。一下这样写不是我要的
############
private void txtUserPwd_DoubleClick(object sender, EventArgs e) 

txtUserPwd.Select(0,0);//在文本双击事件里重新选择文本 

############

解决方案 »

  1.   

    我这样写的。没效果。还是事件里我写的不对呢?大侠
        public partial class TextBoxDouble : System.Windows.Forms.TextBox
        {
            public TextBoxDouble()
            {
                InitializeComponent();
            }
            
            public TextBoxDouble(IContainer container)
            {
                container.Add(this);            InitializeComponent();
            }        protected override void OnMouseDoubleClick(System.Windows.Forms.MouseEventArgs e)
            {
                //    base.OnMouseDoubleClick(e);
                return;
            }
        }
      

  2.   

    双击选中好象是系统的(凡是在可用鼠标选中的地方,双击均可选择,而且双击只中选择单词)与textbox无关.
      

  3.   

    要有这种思想,不要的东西我们都可以重写的,哈哈,重写OnMouseDoubleClick事件
      

  4.   


    继承TextBox,然后屏蔽掉鼠标的双击消息.
    class MyTextBox:TextBox
        {        const int WM_LBUTTONDBLCLK = 0x0203;
            protected override void WndProc(ref Message m)
            {
                if (m.Msg == WM_LBUTTONDBLCLK)
                    return;
                else
                {
                    base.WndProc(ref m);
                }
            }
        }
      

  5.   

    楼上的大侠 h_w_king,参数类型Message是引用哪个命名空间的呢?
      

  6.   

    怎么结不了贴??!!一结贴就这样
    ##############################
    “/”应用程序中的服务器错误。
    --------------------------------------------------------------------------------回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentException: 回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈跟踪: 
    [ArgumentException: 回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。]
       System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId, String argument) +159
       System.Web.UI.Control.ValidateEvent(String uniqueID, String eventArgument) +108
       System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +32
       System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +177
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1746 
    --------------------------------------------------------------------------------
    版本信息: Microsoft .NET Framework 版本:2.0.50727.1433; ASP.NET 版本:2.0.50727.1433 
    ##############################不知道是我单位网络不行还是网站不行,我回家马上给你(h_w_king)再结贴,不好意思啊
      

  7.   

    ===================================================在这个里面能调用OnMouseDoubleClick(System.Windows.Forms.MouseEventArgs e)事件吗?麻烦再说下,我补分大侠
      

  8.   

    OnMouseDoubleClick事件已没用了.但你可以自己写个事件来代替.
      

  9.   

    class MyTextBox:TextBox
        {        const int WM_LBUTTONDBLCLK = 0x0203;
            public event Mydoubleclick MyMousedoubleclick;        protected override void WndProc(ref Message m)
            {
                if (m.Msg == WM_LBUTTONDBLCLK)
                {
                    
                    MouseEventArgs e=new MouseEventArgs(MouseButtons.Left,2,MousePosition.X,MousePosition.Y,0);
                    if (MyMousedoubleclick != null)
                        MyMousedoubleclick(this, e);
                    return;
                }            else
                {
                    base.WndProc(ref m);
                }
            }
        }
        public delegate void Mydoubleclick(object sender, MouseEventArgs e);
     调用时就会有MyMousedoubleclick事件.
     this.myTextBox1.MyMousedoubleclick += new Mydoubleclick(myTextBox1_doubleclick);