【发布时间】:2015-01-01 22:50:58
【问题描述】:
我有一个包含九组按钮和标签的表单。按钮的单击功能会更新标签中的数字。最后,我将标签值保存到文件中。标签具有 eLabel1、eLabel2、eLabel3 之类的名称。我使用 for 循环包裹在 switch(case) 周围来选择和保存标签。 我的问题是,开关箱的代码行数是否更少?我在想一个像 "e"+i 这样的字符串来调用标签。我知道没有 .GetByName() 但还有其他东西可以使用吗?喜欢 .FromHandle()?
这是简短的版本。 我有九个标签 eLabel1、eLabel2、eLabel3..
public void save()
{
for (int i = 0; i < 9; i++)
{
string[] posstrings=switchpos(i+1);
//string manipulation stuff
}
}
private string[] switchpos(int i)
{
string e;
string[] posstrings;
switch (i)
{
case 1:
e = eLabel1.Text;
break;
case 2:
//and so on
}
posstrings = new string[11] { e, m, l, s, b, pfc, pfr, pf3, cf, ct, cr};
return posstrings;
}
我想知道是否有其他方法可以进行切换。
【问题讨论】:
-
这是很多没有代码的谈话。我们是程序员,我们喜欢阅读 CODE。
-
请澄清您的具体问题或添加其他详细信息以准确突出您的需要。正如目前所写的那样,很难准确地说出你在问什么。请参阅“如何提问”页面以获得澄清此问题的帮助。
-
我知道没有 .GetByName() ->
this.Controls.Find("name") -
试过 this.Controls.Find() 但返回的数组为空