【问题标题】:VB displaying elements from multidimensional array in listboxVB在列表框中显示多维数组中的元素
【发布时间】:2014-02-09 01:49:52
【问题描述】:

由于某些奇怪的原因,当我使用循环显示数组元素时出现错误。我似乎无法理解我在做什么或做得不对。这是到目前为止的代码。这不是上课,我是在自学。

Option Strict On
Option Explicit On
Option Infer Off

Public Class Form1

Private strExams(49, 2) As String
Dim count As Integer = 0

Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click

    Dim strStudent As String = txtStudent.Text
    Dim strTest As String = txtTest.Text
    Dim strScore As String = txtScore.Text

    If count <= 49 Then
        strExams(count, 0) = strStudent
        strExams(count, 1) = strTest
        strExams(count, 2) = strScore
        count += 1
    End If

    txtStudent.Text = String.Empty
    txtTest.Text = String.Empty
    txtScore.Text = String.Empty

    txtStudent.Focus()

End Sub

Private Sub btnDisplay_Click(sender As Object, e As EventArgs) Handles btnDisplay.Click

    Dim intHighRow As Integer = strExams.GetUpperBound(0)
    Dim intHighCol As Integer = strExams.GetUpperBound(1)
    Dim intR As Integer
    Dim intC As Integer
    Do While intC <= intHighCol
        intR = 0
        Do While intR <= intHighRow
            lstMessage.Items.Add(strExams(intR, intC))
            intR += 1
        Loop
        intC += 1
    Loop

End Sub

这是我点击显示按钮时遇到的错误。

System.Windows.Forms.dll 中出现“System.ArgumentNullException”类型的未处理异常

附加信息:值不能为空。

【问题讨论】:

  • 点击 btnDisplay 按钮时你想在这里实现什么?
  • 我正在尝试将数组的所有内容放入列表框中。
  • 我似乎混淆了我希望它如何被列出。它应该按行而不是按列列出。

标签: arrays vb.net multidimensional-array listbox


【解决方案1】:

试试这个。这对我来说更有意义。您收到 null 错误的原因是您没有填写数组中的所有内容,并且您的列表框无法列出 null 项目。因此,一种解决方法是仅枚举已经有值的项目,因此,只需循环直到 count 的最后一个值。

Private Sub btnDisplay_Click(sender As Object, e As EventArgs) Handles btnDisplay.Click
    Dim intR As Integer

    lstMessage.Items.Clear()
    Do While intR < count
        lstMessage.Items.Add(strExams(intR, 0) & " - " & strExams(intR, 1) & " - " & strExams(intR, 2))
        intR += 1
    Loop
End Sub

【讨论】:

  • 我认为它是这样的,但不确定如何添加所有列以使其添加到列表框中。再次感谢您。
  • 不客气。默认列表框控件只能有 1 列,因此我添加了一个“-”字符来分隔值。如果要以多列格式显示,则必须使用 ListView,或者您可以使用具有列出多列格式功能的 3rd 方列表框控件。
猜你喜欢
  • 1970-01-01
  • 2021-11-23
  • 2014-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-27
  • 1970-01-01
相关资源
最近更新 更多