读书人

看到了将窗体所有TextBox控件置0的小

发布时间: 2013-10-27 15:21:50 作者: rapoo

看到了将窗体所有TextBox控件置0的,我想求一个更改Name的方法
看到了将窗体所有TextBox控件置0的,小弟我想更改Name的方法
如图,我有一个TabPage里面有很多个输入框,用来设置不同目录的,我希望窗体加载的时候Text下面的textBox的name自动变成上面label显示的文字,即textBox1.name=label1.Text;,这个数量都是对应的1对1,2对2 textbox 控件 历遍
[解决办法]

引用:
Quote: 引用:

更建议你将lable和text组合到一起,做一个自定义组件
还不懂怎么组合到一起,请指教一下
另外不能根据控件编号来对应吗?比如label1对应textBox1,label2对应textBox2

可以根据编号来对应的。
如果你的窗体像顶楼那样,可以直接用下面的代码,这里面没有验证。

Label[] arrLabel = this.Controls.OfType<Label>().ToArray();
foreach (Label lbl in arrLabel)
{
string sIndex = lbl.Name.Substring(5, lbl.Name.Length - 5);
Control[] arr = this.Controls.Find("textBox" + sIndex, false);
{
TextBox txt = arr[0] as TextBox;
txt.Name = lbl.Text;
}
}


你也可以在此基础上,添加一些验证条件。

Label[] arrLabel = this.Controls.OfType<Label>().ToArray();
foreach (Label lbl in arrLabel)
{
//
if (lbl.Name.Length > 5 && lbl.Name.Substring(0, 5) == "label")
{
string sIndex = lbl.Name.Substring(5, lbl.Name.Length - 5);
int iIndex = 0;
bool bRet = int.TryParse(sIndex, out iIndex);
if (bRet && iIndex > 0)
{
//
Control[] arr = this.Controls.Find("textBox" + sIndex, false);
if (arr.Length == 1 && arr[0] is TextBox)
{
TextBox txt = arr[0] as TextBox;
txt.Name = lbl.Text;
}

}
}
}


读书人网 >C#

热点推荐