我只是想知道这是否可行。我正在尝试验证用户填写的表单,并且当未填写所需的部分时,我会增加
ErrorCount + = 1
变量显示程序内部发生了错误,然后我也设置了
ErrorArray()
到相应的字段编号,现在我有0-12(13个字段)。我所做的还是标题与所有这些字段相关联的标签,以与可能设置的ErrorArray()值相对应,例如。
PatLabel0 PatLabel1等
我要做的是循环遍历数组内容,具体取决于已设置的ErrorArray()值,将该标签的相应fontcolor属性设置为红色,以显示这些现在需要填充出。这就是我所拥有的,但Visual Studio不允许我通过循环使用迭代作为对更改属性的引用。任何人都可以指出我正确的方向试图解决这个问题,或者至少告诉我还能做些什么。只是看起来如果....那么....其他....当1个功能线可以做同样的工作时,每个中有2到3行的语句是多余的。这就是我所拥有的。
for i = 0 to UBound(ErrorArray(12))
if(ErrorArray(i) = "*")then
PatLabel(i).forecolor = color.red
else
PatLabel(i).forecolor = color.black
end if
next
这基本上都是我最初寻找的,但我不能这样做。 感谢您提前提供任何帮助,我知道我有另一个类似的帖子提出这个问题,只是认为它可能已被标题化并解释得很差。 -NickG
答案 0 :(得分:0)
不知道你的代码意味着什么,但这里有一些C#来做这个伎俩...
for(int i = 0; i < ErrorArray.Length; i++)
{
if(ErrorArray[i] == "*")
{
PatLabel(i).ForeColor = Color.Red;
}
else
{
PatLabel(i).ForeColor = Color.Black;
}
}
这假设ErrorArray是一个字符串[]或类似的东西(列表等),并且PatLabel是一个函数,它获取控件的索引位置并返回要更改的控件。
如果PatLabel是一个控件数组,你可以像这样更改ForeColor属性......
PatLabel[i].ForeColor = Color.Red;
一个示例函数,可以在给定数字ID ...
的情况下设置控件的属性void SetControlColor(int i, Color color)
{
Label label = Panel1.Controls["PatLabel" + i] AS Label;
if(label != null)
{
label.ForeColor = color;
}
}
然后你可以从上面调用函数for循环,如...
for(int i = 0; i < ErrorArray.Length; i++)
{
if(ErrorArray[i] == "*")
{
SetControlColor(i, Color.Red);
}
else
{
SetControlColor(i, Color.Black);
}
}
注意:当我编写初始代码示例时,此问题被标记为C#