Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.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 列表框中的选定索引在获取值后不会保持选定状态_Vb.net_Visual Studio 2012_Methods_Indexing_Listbox - Fatal编程技术网

Vb.net 列表框中的选定索引在获取值后不会保持选定状态

Vb.net 列表框中的选定索引在获取值后不会保持选定状态,vb.net,visual-studio-2012,methods,indexing,listbox,Vb.net,Visual Studio 2012,Methods,Indexing,Listbox,我希望能够在我的列表框中选择一个索引。我的列表框将根据所选索引获取值,但是当我尝试在列表框中选择一个索引时,它将获取值,但保持未选中状态。我必须第二次选择索引才能将其选中。为什么呢 以下是我在selectedIndexChanged上的代码: Private Sub listResults_SelectedIndexChanged(sender As Object, e As EventArgs) Handles listResults.SelectedIndexChanged Upda

我希望能够在我的列表框中选择一个索引。我的列表框将根据所选索引获取值,但是当我尝试在列表框中选择一个索引时,它将获取值,但保持未选中状态。我必须第二次选择索引才能将其选中。为什么呢

以下是我在selectedIndexChanged上的代码:

Private Sub listResults_SelectedIndexChanged(sender As Object, e As EventArgs) Handles listResults.SelectedIndexChanged
    UpdateContactInformationFromRegistry()
End Sub
UpdateContactInformation fromRegistry方法:

 Private Sub UpdateContactInformationFromRegistry()
        Dim contact As Contact = m_contacts.GetContact(listResults.SelectedIndex)

        cmbCountries.SelectedIndex = DirectCast(contact.AddressData.Country, Integer)
        txtFirstName.Text = contact.FirstName
        txtLastName.Text = contact.LastName
        txtStreet.Text = contact.AddressData.Street
        txtZip.Text = contact.AddressData.ZipCode
        txtCity.Text = contact.AddressData.City

    End Sub
更新V2

CMB.SelectedIndexChanged事件处理程序

 Private Sub cmbCountries_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbCountries.SelectedIndexChanged
        UpdateGUI()
    End Sub
UpdateGUI方法

Private Sub UpdateGUI()
        Dim strContacts() As String = m_contacts.GetContactInfo()



        If (strContacts IsNot Nothing) Then
            listResults.Items.Clear()
            listResults.Items.AddRange(strContacts)
            lstCount.Text = listResults.Items.Count.ToString()
        End If
    End Sub

您是否有与cmbCountries关联的事件处理程序。SelectedIndexChangedInes。请查看问题的更新信息当您在UpDateGUI中清除列表时,您也会清除所选项目。将列表设置为ListBox的数据源,并且大部分代码都不需要。如何将列表设置为数据源?向传递ListBox的集合类添加一个方法,或者将其传递到ctor中,然后只传递ListBox.DataSource=列表一个BindingList可能工作得更好