1

こんにちは、form1 の ComboBox を持つ vb Windows フォーム アプリケーションがあります。いくつかのレジストリを読み取り、アイテムの結果をコンボ ボックスに追加するコードがあります。結果の 1 つを選択して、開始プロセスを実行したいと思います。私の問題は、アイテムが選択されたときにコードをどこに配置してから何かを実行し、何が選択されているかを判断する方法です。

レジストリ キーを照会するためのマイ コード

 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

このようなことをすると、空白のメッセージボックスが表示されるだけで、コンボボックスからそのテキストをまだ選択していません。

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

2 に答える 2

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 
于 2013-06-16T09:12:53.613 に答える
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
于 2014-03-09T17:32:53.913 に答える