我用代码动态创建了一个textbox组:private TextBox[] Txt = new TextBox[5];
private void form_Load(object sender, EventArgs e)
{
//加载结构
LoadStruct();
}
private void LoadStruct()
{ ······
for (i = 0; i < 5; i++)
{
Txt[i].Location = new System.Drawing.Point(20,35*i+25)
}
现在我想给Txt[0]写textchange事件,该怎么做?麻烦各位大虾帮帮小弟!
private void form_Load(object sender, EventArgs e)
{
//加载结构
LoadStruct();
}
private void LoadStruct()
{ ······
for (i = 0; i < 5; i++)
{
Txt[i].Location = new System.Drawing.Point(20,35*i+25)
}
现在我想给Txt[0]写textchange事件,该怎么做?麻烦各位大虾帮帮小弟!
{
TextBox[] Txt = new TextBox[5]; this.SuspendLayout();
for (int i = 0; i < 5; i++)
{
Txt[i] = new TextBox();
Txt[i].Location = new System.Drawing.Point(20, 35 * i + 25); Txt[i].TextChanged += new EventHandler(MyTextChanged);
} this.Controls.AddRange(Txt); this.ResumeLayout();
} private void Form1_Load(object sender, EventArgs e)
{
//加载结构
LoadStruct();
} private void MyTextChanged(object sender, EventArgs e)
{
MessageBox.Show((sender as TextBox).Text);
}
这样就会出来一个事件委托,按两下Tab键就帮你搞定,直接写逻辑代码就好
Public Class TextChange
{
Public string Text{get;set;} //要传递的参数,可以根据自己需要定义
Public Class Txt[0]TextChangedArgs:EventArgs
{
Public Txt[0]TextChangedArgs(string text)
{
this.Text=text;
}
}
Public void Delegage TextChangedHandler(object sender,Txt[0]TextChangedArgs e); //委托
Public event TextChangedHandler Txt[0]TextChanged; //事件
Protected virtual OnTextChanged(Txt[0]TextChangedArgs e)
{
if(this.Txt[0]TextChanged ==null)
{
Txt[0]TextChanged(this,e);
}
}
Public void RaiseTxt[0]TextChanged() //事件触发函数
{
string temp=string.Empty; //根据你的实际情况给属性赋值
//…… 你需要触发该事件的情况或原有//
Txt[0]TextChangedArgs ttc=new Txt[0]TextChangedArgs(temp);
OnTextChanged(ttc);
}
}
Txt[0]TextChanged+=…… //调用你的响应函数进行处理即可。
如下:
Txt[i].TextChanged += MyTextChanged;