我正在进行一项任务,使用20个文本框从用户那里获得20个答案,对答案进行评分并将正确的答案选项输出到20个标签框。输入答案和答案键存储在数组中。将值从答案键数组传递到表单中所有适当标签的最佳方法是什么?现在我正在使用这种方法:
For i As Integer = 21 To intLblNum
For intCount = 0 To (strAnswers.Length() - 1)
gradeResult.Controls("Label" & i.ToString).Text = strAnswers(intCount)
Next
Next
但结果是,我的所有标签框都只包含答案键数组中的最后一个元素。我做错了什么?
答案 0 :(得分:2)
我看到的一个问题是你遍历每个标签的所有20个答案,你需要有一个循环并将值偏移以考虑你的Label名称。这样的事情对你有用。
Dim maxEntrys As Integer = 19
For i = 0 To maxEntrys
gradeResult.Controls("Label" & (21 + i)).Text = strAnswers(i)
Next
答案 1 :(得分:1)
假设您使用的是WinForms,每个控件都有一个类型为object的Tag属性,可用于存储自定义数据。使用控制命名作为将数据与控件相关联的方法被认为不是一种好的设计。
考虑使用一个类来保存你的问题/答案数据,制作一个数组或最好是它们的集合,并将每个控件的Tag属性设置为适当的实例。