例如,一个textbox:txt_password在输入代码的时候,txt_password.会自动弹出一些方法,如txt_password.Text或txt_password.TabIndex等现我写了个类文件TextBoxExtension的cs,里面有RegisterPressEnterAction等方法我想在输入txt_password.时,会弹出RegisterPressEnterAction这个方法,应该怎么做?其实,我是想用一个扩展方法来,实现回车键自动执行相应按钮的click事件,以后用就方便。也已经知道在form标签中的DefaultBtton属性可以实现,但在一些其他加载的模快就不一定有form了,所以希望用扩展方法来做或者有更方便的办法吗?

解决方案 »

  1.   

    public static class TextBoxExtend
    {
        public static void RegisterPressEnterAction(this TextBox txt)
        {
            //做你想做的事情
        }
    }
      

  2.   


    嗯,是的,我是这样写的,并写好这个TextBoxExtend.cs文件了是不是要把这个cs类文件放到哪里?例如我放在app_code文件夹里,用的时候需要实例化但是,我想要的是,像命名空间那样,只要useing之后,在输入控件ID的时候,自动弹出相应的方法如txt_password.RegisterPressEnterAction(按钮类型,按钮ID)
      

  3.   


    试了,没有出现我要的RegisterPressEnterAction这个方法,
    就是没有txt_password.RegisterPressEnterAction
    怎么办?
      

  4.   

    就是像这样出现:RegisterPressEnterAction方法,明显这里还没出现我要的方法
      

  5.   

    这个RegisterPressEnterAction自己写的方法,想以后方便用
    要加命名空间的话,我的这个TextBoxExtension.cs类文件应该放哪里?或者怎么引用(不是实例化的引用),像txt_password.text,是类库自带的。
      

  6.   

    帮你试了下,放到App_Code文件夹下面的cs文件里就行了,重新生成解决方案一下。
      

  7.   

    1、如果需要点出方法名,则需要自定义控件 ,继承系统的text,然后在这个自定义类中写RegisterPressEnterAction的方法。
    2、回车符号不会触发change事件,所有想在change中调用这个方法是行不通的。
    3、如果需要实现,可以考虑把在form中监听keydown事件,然后调用当前获得光标的文本框的RegisterPressEnterAction方法。具体使用得把获得光标的文本框转成自定义控件,一般用接口比较好,各种控件都可以实现这个接口,从而统一调用。
      

  8.   


    嗯,我只是为了说明问题,随便大个例子出来的,我是打算用load事件的
    接口那边是怎么做?