2014-01-17 29 views
-1

我有一個旋轉按鈕和一個兩個列表框。我已經設置了旋鈕的最小和最大值。我已經有一個按鈕,它將數據從列表框1移動到列表框2,但我想設置基於旋轉按鈕移動數據的限制。 例如: 如果旋轉按鈕值是2,那麼只有2項可添加到listbox2如何在條件中使用SpinButton

注:我已經掛了旋轉按鈕,一個文本框

+0

你是如何從LB1移動數據LB2? –

+0

我選擇每個項目並將其添加到listbox2使用循環 – Vidhi

+0

jctr = CInt(Me.TextBox1.Text)這將給我在文本框中設置的值。如果想檢查一個條件,如果數據輸入listbox2> jctr錯誤信息 – Vidhi

回答

1

聲明你移動一個變量,然後每次項目,將變量值增加1.因此,下次單擊按鈕移動項目時,只需將變量值與SpinButton's值進行比較即可。例如(未經測試)

Dim nMoved As Long 

Private Sub CommandButton1_Click() 
    If nMoved < (VAL(TextBox1.Text) + 1) 
     ' 
     '~~> Code to move items from LB1 to LB2 
     ' 

     nMoved = nMoved + 1 
    Else 
     MsgBox "Max items that can be moved from LB1 to LB2 reached." 
    End If 
End Sub 

從評論

後續需要只有當你匹配的項目在LB計算在您的結核病情況下使用.ListCount。我從你的帖子中瞭解到,用戶不應該能夠將更多項目移入LB中,而不是TB中指定的項目。無論如何,似乎你的查詢是排序的。

關於你的第二條評論。

您需要使用下面的代碼遍歷LB項目,然後在counter等於TB值時退出循環。例如

For i = 0 To (ListBox1.ListCount - 1) 
    If i = (Val(TextBox1.Text) - 1) Then Exit For 
     ' 
     '~~> Code to move items from LB1 to LB2 
     ' 
    End If 
Next i 
+0

謝謝我用點心jctr作爲整數 jctr = CINT(Me.TextBox1.Value) 如果jctr = ListBox2.ListCount得到它然後 MSGBOX「超越極限隊」 別人的代碼,用於移動 – Vidhi

+0

我還有一個問題。我已經設置旋轉值爲2.如果我想將所有數據從list1移動到list2。它應該只複製前2,因爲spinvalue = 2我該怎麼做? – Vidhi

0

謝謝大家..我終於得到了答案

Dim ct As Integer 
Dim ictr As Long 
Dim jctr As Integer 
jctr = CInt(Me.TextBox1.Value) 
If jctr = ListBox2.ListCount Then 
    MsgBox "Maximum limit has been reached. You cannot add more players" 
    Exit Sub 
End If 
    For ictr = jctr To 1 Step -1 
    Me.ListBox2.AddItem Me.ListBox1.List(ictr) 
Me.ListBox1.RemoveItem ictr 
Next ictr 
+0

這將根據旋轉值中的輸入來選擇項目數量。但是如果列表框2中已有項目,則上面的代碼將項目添加到它。例如:如果旋轉值是3並且box2中已經有一個項目,則添加所有按鈕將3個項目添加到box2。這是一個錯誤,因爲box2中的總項目應該是3,而不是4。我該如何調試? – Vidhi