积极答复者
c# winform 获取所有 textbox 控件

问题
答案
-
Public List<TextBox> listTxt=new List<TextBox>();
Public void FindTxt(Control controls)
{
foreach(Control control in controls)
{
if(control is TextBox)
{
listTxt.Add(control);
}
if(control.Controls.Count>0)
{
FindTxt(control);
}
}
}
胡超- 已标记为答案 feiyun0112Moderator 2011年4月20日 8:32
全部回复
-
dear
基本上所有的控件都有Controls属性,下列的写法只能找到Form表单的TextBox
foreach (Control c in this.Controls) { if (c is TextBox) { MessageBox.Show(c.Name + " : " + (c as TextBox).Text); } }
若是有容器控件,比如像Panel,TabControl...etc
就必须要在往里面搜寻一次,请参考以下:
private void Form1_Load(object sender, EventArgs e) { FindControl(this); } void FindControl(Control Ctrl) { foreach (Control c in Ctrl.Controls) { if (c is Panel) { FindControl(c); } else if (c is TabControl) { FindControl(c); } else { FindTextBox(c); } } } void FindTextBox(Control Ctrl) { if (Ctrl is TextBox) { TextBox t = (TextBox)Ctrl; MessageBox.Show(t.Name + " : " + t.Text); } }
秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/ -
Public List<TextBox> listTxt=new List<TextBox>();
Public void FindTxt(Control controls)
{
foreach(Control control in controls)
{
if(control is TextBox)
{
listTxt.Add(control);
}
if(control.Controls.Count>0)
{
FindTxt(control);
}
}
}
胡超- 已标记为答案 feiyun0112Moderator 2011年4月20日 8:32