如何循环winform界面的所有控件?
如何使用一个循环,循环每一个控件,我是要做多语言版本,要循环所有的控件,逐个更改控件text。
foreach (Control item in this.Controls) { if (Values[item.Name] != null) item.Text = Values[item.Name].ToString(); }//values是读取到配置文件ini的Hashtable key是控件name,value是控件text值
foreach (DictionaryEntry item in Values) { if (this.Controls[item.Key.ToString()] != null) this.Controls[item.Key.ToString()].Text = item.Value.ToString(); }
foreach (Control item in this.Controls){ try { TextBox t = (TextBox)item; //是TextBox控件,做你后面的 } catch { //不是TextBox控件 自己看着办 }}
[解决办法]
foreach (Control item in this.Controls) { if(item is TabControl) { foreach (Control item_sub in item.Controls) { item_sub.Text = "tab动态修改"; foreach (Control item_sub2 in item_sub.Controls) item_sub2.Text = "tab子控件动态修改"; } } else item.Text = "动态修改"; }
[解决办法]
是差不多,我的意思是把界面所有文字全部写到xml,生成界面的时候由xml读取出来显示,这样就是支持多语言了吗?多少种语言就用多少个xml行了