ComboBox列表:如果单击或突出显示组合框中的某个项目,如何执行代码?

时间:2018-01-30 13:46:07

标签: combobox vb6

我为自己构建了一个方便的应用程序。它是一个包含其他程序链接的程序,因此我可以从中心位置启动它们。我已经有了设计,但是我希望我的应用程序在组合框中单击一个项目时启动一个程序。例如:Microsoft Office Word是该列表中的项目,当我单击它时,我希望它启动Microsoft Office Word。我怎样才能做到这一点?已经尝试过以下内容:

Private Sub programCombo_Click()
  'If programCombo.List(1) = "Word" Then
    'Shell "C:\Program Files\Everything\Everything.exe", vbNormalFocus
  'End If
  Select Case UCase(programCombo.Text)
    Case "Word"
      Shell "C:\Program Files (x86)\Microsoft Office\Office16\WINWORD.EXE", vbNormalFocus
    Case "Excel"
      Shell "C:\Program Files (x86)\Microsoft Office\Office16\Excel.EXE", vbNormalFocus
  End Select
End Sub

但这并没有做任何事情。我有点工作,但只有当我编辑" Text"组合框的属性。当我将" programCombo.List(1)"更改为组合框列表中的第2项时,它没有做任何事情。

我知道我可以通过按钮完成所有这些操作,但如果我这样做,那将是一个大而丑陋且笨拙的程序。

2 个答案:

答案 0 :(得分:0)

您在说明中说明了需要发生的事情 - start a program when an item is clicked - 因此解决方案是响应组合框上的Click事件。以下代码是我所谈论的基本示例。

Option Explicit

Private Sub Form_Load()
   programCombo.AddItem "Word"
   programCombo.AddItem "Excel"
End Sub

Private Sub programCombo_Click()
   Select Case UCase(programCombo.Text)
      Case "WORD"
         Shell "C:\Program Files (x86)\Microsoft Office\Office16\WINWORD.EXE", vbNormalFocus
      Case "EXCEL"
         'shell excel
   End Select
End Sub

答案 1 :(得分:0)

我明白了。我有点傻。 UCase将其转换为大写,我使用" Word"而不是" WORD"。我搜索了UCase的好东西。谢谢你的建议。

我现在要爬到一个角落,因为这么愚蠢而哭泣。