我的textbox没有textChanged的事件?这是怎么回事??要怎么加上去??用的是自定义事件!!

如题所述

1、申明一个委托
如:public delegate void TextChangedHandler(Object sender, EventArgs e); //声明委托
2、申明一个事件
如:public event TextChangedEventHandler TextChanged; //声明事件
3、建立可以供继承自 Heater 的类重写,以便继承类拒绝其他对象对它的监视
如: protected virtual void OnTextChanged(EventArgs e) {
if (TextChange!= null) { // 如果有对象注册
TextChanged(this, e); // 调用所有注册对象的方法
}
}
4、增加能触发事件运行的过程
如:public void Click(Object sender) {
//建立EventArgs 对象。
EventArgs e = new EventArgs();
OnTextChanged(e); // 调用 OnTextChanged方法
}

5、事件运用,实例化textbox控件,增加事件方法。
如:
static void Main() {
TextBox tb = new TextBox();
tb.TextChanged += TextChanged; //建立一个TextChanged事件方法,把方法注册到textbook中
tb.Click(null); //会自动调用注册过对象的方法
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-25
= =,双击textbox ,在前台不就有了么,要不,你删了这个重新拉一个,,,,;....本回答被网友采纳
第2个回答  2012-10-25
你这个是winform还是asp.net?
如果是asp.net那极有可能是你textbox的AutoPostBack属性没设置为true,设置为true即可触发。

如果是winform,打开你这个窗体类的.designer.cs文件,根据textbox的ID找到代码部分,看看有没有textbox.textchanged+=new EventHandler()...这样的代码,括号里的方法是不是你注册的那个?
如果没有,改掉就行了。
第3个回答  2012-10-25
c/s还是b/s架构 的? 用的是自定义控件?追问

c/s的

注册:  this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);

定义:

private void textBox1_TextChanged(object sender, EventArgs e)

        {

            MessageBox.Show(textBox1.Text);

        }

有断点,进不去!!

追答

在designer.cs中添加

this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
在.cs中添加
private void textBox1_TextChanged(object sender,EventArgs e){}

第4个回答  2012-10-25
一般是有的,没有就注册一个事件
第5个回答  2012-10-25
手工加一个就是了追问

注册了事件:  this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);

定义事件:

private void textBox1_TextChanged(object sender, EventArgs e)

        {

            MessageBox.Show(textBox1.Text);

        }

,打了断点,不会进来啊!!

相似回答