2016-05-31 107 views
-1

因爲我使用VB6.0創建一個對話框與列表框,但只有我可以得到帶修剪(DlgText $(「xxxxx」))的字符串文本,爲對方仍然無法找到如何得到它。VB6 - 我怎樣才能得到列表框選擇ID

大多數來自網絡的答案都表示可以使用[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 

任何想法,我應該怎麼獲取選中列表框的項目? 我想獲得我在LisBox中選擇的數組編號。

雖然我得到了一個其他愚蠢的想法得到了指數類似如下代碼:

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

不過我一直在尋找任何智能的代碼/項目/簡單的方法來快速獲得結果就像得到字符串在陣列狀值:TRIM(DlgText $( 「XXXXX」))

最好的問候,

KT

回答

0

要獲取列表框的選定索引:

list.ListIndex

返回0,如果所述第一項被選擇,1如果選擇了第二項,等等,和-1,如果沒有項目被選擇。

+0

如果我根據找不到的對象繼續操作,可能無法成功。 這個x.ListIndex和x代表一個Object Like: https://msdn.microsoft.com/en-us/library/aa235162(v=vs.60).aspx 但是我找不到哪個對象我應該使用嗎? 但是,謝謝你的回覆。 –