【发布时间】:2013-03-21 07:51:55
【问题描述】:
我即将承认失败,我对 VB 还很陌生,我确信我已经设法错过了一些非常基本的东西,
以下代码的问题是,当执行 Button3_Click 函数时,如果我忘记在“ListBox2”这一行包含“.Name”,则在运行时会出现“值不能为空。参数名称:项目”异常.Items.Add(test.Name)" 然后东西仍然会被吐到列表框中,所以假设那里有东西,
有什么帮助吗?
问候 丹
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles
Button3.Click
Dim test As comdevice
Dim usbcoms() As comdevice = FindComs()
For Each test In usbcoms
ListBox2.Items.Add(test.Name)
Next
End Sub
Private Function FindComs() As comdevice()
Dim USBClass As New System.Management.ManagementClass("Win32_PNPEntity")
Dim USBCollection As System.Management.ManagementObjectCollection =
USBClass.GetInstances()
Dim USB As System.Management.ManagementObject
Dim temp() As comdevice
Dim n As Integer
n = 0
For Each USB In USBCollection
If USB("Name").ToString().Contains("P") Then
n += 1
End If
Next USB
ReDim temp(n)
n = 0
For Each USB In USBCollection
If USB("Name").ToString().Contains("COM") Then
temp(n).Name = USB("Name").ToString()
temp(n).DeviceID = USB("DeviceID").ToString()
End If
Next
Return temp
End Function
Private Structure comdevice
Public Name As String ' This employee's given name.
Public DeviceID As String ' This employee's family name.
End Structure
【问题讨论】:
-
ListBox2在哪里声明?它曾经被分配到吗? -
它在主窗体中,它以任何方式获取数据,而不是这种情况
-
或者根本没有,可能。如果
ListBox2没有被分配或者如果它被分配了null,你会得到这个错误。与usbcom的Name属性相同 - 它可能是null。
标签: vb.net exception null arguments