问题描述
自定义了一个新控件:label和textbox的组合控件。为其添加了的属性中有一个是MaxLength(最大字符数)。现定义两个事件:MaxLengthChanged,最大字符数改变时触发。MaxLengthArrived,新控件中的字符数已达MaxLength时触发。第一个事件:我在项目中添加了个TextBox用于用户设置新长度(默认长度为MaxLength=10),和一个Button按钮提交:if(txtNewLength.Text.Length!=0)ctlLabelTextBox1.MaxLength=Convert.ToUInt32(txtNewLength.Text.Trim().ToString());在自定义控件的属性MaxLength中我调用了事件的处理方法:publicuintMaxLength{get{//mLength已定义为uintreturnmLength;}set{if(mLength!=value){mLength=value;if(MaxLengthChanged!=null)MaxLengthChanged(this,newEventArgs());}textBox1.MaxLength=(int)mLength;}}处理完成。事件2MaxLengthArrived怎么处理?在何处处理?我想在新控件的Load事件中检测处理却不对:privatevoidctlLabelTextBox_Load(objectsender,EventArgse){label1.Text=this.Name;this.Height=textBox1.Height>label1.Height?textBox1.Height:label1.Height;MoveControls();if(textBox1.MaxLength==textBox1.Text.Length)if(MaxLengthArrived!=null)MaxLengthArrived(this,newEventArgs());}大家给我点帮助。
解决方案
解决方案二:
ctlLabelTextBox这个控件的textchange中判断吧
解决方案三:
eventdelegate
解决方案四:
控件的textchange中
解决方案五:
新控件ctlLabelTextBox的Event列表中没有textchanged事件。。。
解决方案六:
你的控件里不是由于label和textbox的组合的吗,textbox的textchanged事件,发生的时候检查字符数
解决方案七:
在TextBox的TextChanged的中检测处理成功了。谢谢tcshen0。严重表示感谢