2013-06-16 3 views
1

Привет У меня есть приложение с формой окна vb, которое имеет ComboBox из формы1 У меня есть код, который читает какой-то реестр и добавляет результаты элемента в combobox. Я хотел бы выбрать один из результатов и запустить процесс запуска. Моя проблема заключается в том, где я помещаю код при выборе элемента, а затем что-то делать и как определить, что было выбрано?Результаты VB.NET ComboBox selected item

Мой код для запроса ключей реестра

Dim Key, Reader As RegistryKey, Y As String 
    Key = Registry.LocalMachine.OpenSubKey("SOFTWARE\AppStream\AppMgr\Shortcuts", False) 
    For Each X In Key.GetSubKeyNames 
     Reader = Registry.LocalMachine.OpenSubKey("SOFTWARE\AppStream\AppMgr\Shortcuts\" & X, False) 
     If Reader.GetValueNames().Contains("AppTitle") Then 
      Y = Reader.GetValue("AppTitle") 

      If Not ComboBox1.Items.Contains(Y) Then ComboBox1.Items.Add(Y) 
     End If 

Если я делать somehting, как это, он просто показывает пустой MessageBox, и я не выбрал этот текст из выпадающего списка пока.

If ComboBox1.SelectedText Then 
      MessageBox.Show(ComboBox1.SelectedText()) 
     End If 

ответ

1

Вы подписаться на SelectedIndexChanged случае написания метода, как этот

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, _ 
    ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged 

    Dim comboBox As comboBox = CType(sender, comboBox) 

    ' Caution, the event could be called also when there is nothing selected 
    if combBox.SelectedItem IsNot Nothing Then 
     Dim curValue = CType(combBox.SelectedItem, String) 
     'do your stuff with the selected key' 
    End If 
End Sub 
+0

Спасибо большое, работает 100% совершенен. – Zen

0
if combBox.SelectedItem IsNot Nothing Then 

    Dim cmbselected As String = DirectCast(DirectCast(DirectCast(DirectCast(combBox, System.Windows.Controls.ComboBox).SelectedValue, System.Object), System.Data.DataRowView).Row, System.Data.DataRow).ItemArray(0) 

End If