C#中,for循环来实现清空TestBox1的值,该怎么写?
发布网友
发布时间:2023-09-27 16:19
我来回答
共1个回答
热心网友
时间:2024-11-15 20:58
方法1:如果你的10个TestBox都在同一个容器里(暂定是panel1),同时假定TestBox1~10都是TextBox,这样写:
foreach
(Control
c
in
panel1.Controls)
if
(c
is
TextBox)
for
(int
i
=
1;
i
<=
10;
i++)
if
(c.Name
==
"testBox"
+
i.ToString())
(c
as
TextBox).Clear();
就是先遍历容器里所有control,找出所有TextBox,如果他的Name为TestBox1~10就清除文本。
还可以再简洁一些,直接从Name下截取最后的数字
foreach
(Control
c
in
panel1.Controls)
if
(c
is
TextBox
&&
int.Parse(TestBox1.Name.Substring(7))
>=
1
&&
int.Parse(TestBox1.Name.Substring(7))
<=
10)
(c
as
TextBox).Clear();
方法2:假设这些TestBox分散在好多容器里(同样假设TestBox都是TextBox控件),建议这样:把它们都加入到一个列表中(就是List<TextBox>),这样你随时可以遍历列表清除所有列表内成员的文本。
List<TextBox>
testBoxList=new
List<TextBox>();
testBoxList.Add(TestBox1);
testBoxList.Add(TestBox3);
……
要清除时:
foreach
(TextBox
tb
in
testBoxList)
tb.Clear();
这样看起码麻烦,实际上有个好处:你可以用List<Control>列表来维护多种控件,TextBox/Panel/Button等都可以丢进去,需要清除Text属性时遍历即可。
[高质量编程]团队为您答疑解惑,欢迎提出宝贵意见和建议!
QQ176229432