VB6 - 我怎样才能获得ListBox选择的id

时间:2016-05-31 04:11:50

标签: listbox vb6

我使用VB6.0创建带有ListBox的对话框,但只有我可以使用Trim获取String文本(DlgText $(" xxxxx")),对于另一方仍然是我无法找到如何获得它。

来自网络的大部分答案都表示可以使用[LisBox_ID]。选择获取他们想要的项目,但我不能得到相同的结果。

我的代码: [对话框]

Function aOpenDialog As Boolean
    aOpenDialog = False
    iArrayLoop = 0
    Begin Dialog UserDialog ,,250,120,ScriptTitle,.ActivateDlgControls
        Text 5,5,130,10,"Sub Booking End Date", .tf_InsertionSetEndDate
        ListBox 5,15,100,100,aArrayList, .aArrayList
        Text 110,5,130,10,"After Date [DD-MMM-YYYY]", .tf_AfterDate
        TextBox 110,15,55,10, .txt_AfterDate
        Text 110,25,55,10,"Change Reason", .tf_ChangeReason
        TextBox 110,35,130,10, .txt_ChangeReason
        OKButton 110,45,70,10, .btn_Save
        CancelButton 110,55,70,10, .btn_Cancel
    End Dialog
    Dim dlg As UserDialog
    aArrayList(1) = "Day1"
    aArrayList(2) = "Day2"
    Dialog dlg
End Function

[ActiveDlgControls]

Function ActivateDlgControls(ControlName$, Action%, SuppValue%)
    If (Action% = 2 And ControlName$ = "btn_Save") Then
        sMissingMessage = ""
        If (Not IsDate(CStr(Trim(DlgText$("txt_AfterDate"))))) Then
            sMissingMessage = sMissingMessage & "- Please input the correct day format"
        Else
            MsgBox Format(Trim(DlgText$("txt_AfterDate")), "dd mmm yyyy")

            ' This Area will be using for get the selected array item id
            ' I can found the selected items with String
            MsgBox Trim(DlgText$("aArrayList"))

            ' Unknow way to found the selected items id
            ' MsgBox dlg.aArrayList.SelectedItem(x)
        End If

        If (sMissingMessage <> "") Then
            ActivateDlgControls = 1
            iCheckResult = 1
            sMissingMessage = "Information Missing:" & sMissingMessage
            MsgBox sMissingMessage
        End If
    ElseIf (Action% = 2 And ControlName$ = "btn_Cancel") Then
        iCheckResult = 2
    End If
End Function

知道如何获取所选的ListBox项目? 我想得到我在LisBox中选择的数组编号。

虽然我得到了另一个愚蠢的想法来获取索引,如下面的代码:

For iArrayLoopCheck = 0 To UBound(aArrayList)
    If (aArrayList(iArrayLoopCheck) = Trim(DlgText$("aArrayList")))Then
        MsgBox "You Select item: " & iArrayLoopCheck
        Exit For
    End If
Next

仍然我正在寻找任何智能代码/项目/简单方法来快速获得结果就像获取数组中的String值一样:Trim(DlgText $(&#34; xxxxx&#34;))

最诚挚的问候,

KT

1 个答案:

答案 0 :(得分:0)

获取列表框的选定索引:

list.ListIndex

如果选择了第一个项目,则

返回0;如果选择了第二个项目,则返回1,等等,如果没有选择项目,则返回-1。