放法一:
Control[] objs = this.paneltxt.Controls.Find("tb2", true); //tb2是动态创建的文本控件
objs[0].Text = "aaaaaaaaaaaaaaaa"; //因为tb2文本控件名称唯一,第0个元素即是
放法二:
private void button2_Click(object sender, EventArgs e)
{
ListBox lb = (ListBox)this.ControlFromName("ListBox1");
this.GetControls();
}
private Control ControlFromName(string name)
{
object o = this.GetType().GetField(name, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this);
return ((Control)o);
}
private void GetControls()
{
System.Reflection.FieldInfo[] fis = this.GetType().GetFields(System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase);
foreach (System.Reflection.FieldInfo fi in fis)
{
if (fi.GetValue(this) is Control)
MessageBox.Show(fi.Name);
}
}
浙公网安备 33010602011771号