Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net Visual Basic.Net ListView项_Vb.net_Listview - Fatal编程技术网

Vb.net Visual Basic.Net ListView项

Vb.net Visual Basic.Net ListView项,vb.net,listview,Vb.net,Listview,错误名称:对象引用未设置为对象的实例 ==================================================================== 这就是它的真实外观: If ListView2.FocusedItem.ImageIndex = 10 Then 在本例中,在访问其属性ImageIndex属性之前,请尝试检查ListView2.FocusedItem以确保它不是Null/Nothing。 以下是如何添加检查的示例: Private Sub ListVi

错误名称:对象引用未设置为对象的实例

====================================================================

这就是它的真实外观:

If ListView2.FocusedItem.ImageIndex = 10 Then

在本例中,在访问其属性ImageIndex属性之前,请尝试检查ListView2.FocusedItem以确保它不是Null/Nothing。 以下是如何添加检查的示例:

Private Sub ListView2_DoubleClick(sender As Object, e As EventArgs) Handles ListView2.DoubleClick
    If ListView2.FocusedItem.ImageIndex = 0 Or ListView2.FocusedItem.ImageIndex = 1 Or ListView2.FocusedItem.ImageIndex = 2 Then
        If TextBox2.Text.Length = 0 Then
            TextBox2.Text += ListView2.FocusedItem.Text
        Else
            TextBox2.Text += ListView2.FocusedItem.Text & "\"
        End If
        RefreshList()
    End If
    'from here doesn't work
    If Not IsNothing(ListView2.FocusedItem) AndAlso ListView2.FocusedItem.ImageIndex = 10 Then
        If TextBox2.Text.Length < 4 Then
            TextBox2.Text = ""                
        Else
            TextBox2.Text = TextBox2.Text.Substring(0, TextBox2.Text.LastIndexOf("\"))
            TextBox2.Text = TextBox2.Text.Substring(0, TextBox2.Text.LastIndexOf("\") + 1)
            RefreshList()
        End If
    End If
End Sub

Public Sub RefreshList()
    ListView2.Items.Clear()
    Dim item = ListView2.Items.Add("...")
    For cnt As Integer = 1 To ListView2.Columns.Count
        item.SubItems.Add("")
    Next     
End Sub

AndAlso之后的条件只有在AndAlso之前的条件为True时才会被检查。

但是如果它为false,我如何访问该属性而不给我该错误?如果它为false,则您不需要访问该属性。为什么要费心检查一个不存在的对象的属性呢。请阅读有关错误的参考资料。基本上,表单加载时Listview2已满,我只想添加一个新项目,其中包含文本。。。所以List2iew用目录和文件填充自己,我想保留新的第一项名称。。。这意味着,在这种情况下,“后退”。因此,无论何时调用refresh方法,它都会显示项名称,但它不会执行任何操作,因此它是false。我如何修复它?
Private Sub ListView2_DoubleClick(sender As Object, e As EventArgs) Handles ListView2.DoubleClick
    If ListView2.FocusedItem.ImageIndex = 0 Or ListView2.FocusedItem.ImageIndex = 1 Or ListView2.FocusedItem.ImageIndex = 2 Then
        If TextBox2.Text.Length = 0 Then
            TextBox2.Text += ListView2.FocusedItem.Text
        Else
            TextBox2.Text += ListView2.FocusedItem.Text & "\"
        End If
        RefreshList()
    End If
    'from here doesn't work
    If Not IsNothing(ListView2.FocusedItem) AndAlso ListView2.FocusedItem.ImageIndex = 10 Then
        If TextBox2.Text.Length < 4 Then
            TextBox2.Text = ""                
        Else
            TextBox2.Text = TextBox2.Text.Substring(0, TextBox2.Text.LastIndexOf("\"))
            TextBox2.Text = TextBox2.Text.Substring(0, TextBox2.Text.LastIndexOf("\") + 1)
            RefreshList()
        End If
    End If
End Sub

Public Sub RefreshList()
    ListView2.Items.Clear()
    Dim item = ListView2.Items.Add("...")
    For cnt As Integer = 1 To ListView2.Columns.Count
        item.SubItems.Add("")
    Next     
End Sub
If Not IsNothing(ListView2.FocusedItem) AndAlso ListView2.FocusedItem.ImageIndex = 10 Then