我希望从多种形式(主要,两种和三种)获得所有控制权 比较控制标记是否等于变量str_name,如果是,则写入 c.Text中str_value的值。
代码:
private static Form[] getformular()
{
Main main = new Main();
Two f2 = new Two();
Three f3 = new Three();
Form[] form = { main, f2, f3};
return form;
}
private void initcontrol()
{
String str_name = "name";
String str_value = "value";
foreach(Form f in getformular())
{
foreach (Control c in f.Controls)
{
if (f != null && c = null)
{
if (c.Tag.Equals(str_name))
{
c.Text = str_value;
}
}
}
}
}
可以请别人帮帮我吗?
答案 0 :(得分:0)
首先,如@JonB所述,当前代码中的一些条件检查(if
s逻辑)似乎已关闭。
其次,循环遍历Form.Controls
只会为您提供直接放置在表单中的所有控件。例如,如果您在表单中放置了选项卡控件(或任何其他容器控件),并且该选项卡控件中有一个文本框,则只能通过循环访问{{1}来获取选项卡控件并找不到该文本框}。您可以使用递归方法解决这个问题,如下所示。
Form.Controls