1

我正在处理一项作业,该作业使用 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

但结果是,我所有的标签框都只包含答案键数组中的最后一个元素。我做错了什么?

4

2 回答 2

2

我看到的一个问题是您循环遍历每个标签的所有 20 个答案,您需要有一个循环并偏移该值以说明您的标签名称。像这样的东西应该适合你。

Dim maxEntrys As Integer = 19

For i = 0 To maxEntrys
    gradeResult.Controls("Label" & (21 + i)).Text = strAnswers(i)
Next
于 2013-06-26T05:40:58.103 回答
1

假设您在 WinForms 中,每个控件都有一个对象类型的 Tag 属性,可用于存储自定义数据。使用控件命名作为将数据与控件相关联的一种方式被认为不是好的设计。

考虑使用一个类来保存您的问题/答案数据,创建一个数组或最好是它们的集合,并将每个控件的 Tag 属性设置为适当的实例。

于 2013-06-26T05:13:58.080 回答