Dictionary<string, TextBox> textboxes1 = new Dictionary<string, TextBox>();//Key=ID , Value=TextBox
Dictionary<TextBox, string> textboxes2 = new Dictionary<TextBox, string>();//Key=TextBox , Value=ID
foreach (DataRow row in dt.Rows)
{
TextBox t = new TextBox();
t.TextChanged += TextBox_TextChanged;
textboxes1.Add(row["ID"].ToString(), t);//<--- Dictionery1
textboxes2.Add(t, row["ID"].ToString());//<--- Dictionery2
t.Tag = row["ID"].ToString();//<---------Tag
this.Controls.Add(t);
}
void TextBox_TextChanged(object sender, EventArgs e)
{
TextBox t = (sender as TextBox);
string ID = t.Tag.ToString();//<---------Tag
ID = textboxes1.First(n => n.Value == t).Key;//<--- Dictionery1
ID = textboxes2[t];//<--- Dictionery2
}