|
Public Sub CopyItem(SourceCtl As Control, _
TargetCtl As Control, _ Optional strMode As String) On Local Error Resume Next Dim intItem As Integer Screen.MousePointer = vbHourglass With SourceCtl 'identifico il tipo di controllo (ListBox o ComboBox) If TypeOf SourceCtl Is ListBox Then 'eseguo un ciclo per tutti gli elementi della ListBox For intItem = .ListCount - 1 To 0 Step -1 'Se l'elemento e' selezionato, o se la modalita di copia e' COPYALL... If .Selected(intItem) Or InStr(strMode, "COPYALL") Then '.allora aggiungo l'elemento e il suo ItemData al controllo Target TargetCtl.AddItem .List(intItem) TargetCtl.ItemData(TargetCtl.NewIndex) = .ItemData(intItem) 'e se e' indicato il parametro '-', rimuovo l'elemento dal 'controllo Source If InStr(strMode, "-") = 1 Then .RemoveItem (intItem) End If Next 'Copio gli elementi della ComboBox Else 'eseguo un ciclo per tutti gli elementi della ComboBox For intItem = .ListCount - 1 To 0 Step -1 'copio gli elementi e i relativi ItemData nel controllo Target TargetCtl.AddItem .List(intItem) TargetCtl.ItemData(TargetCtl.NewIndex) = .ItemData(intItem) 'e se e' indicato il parametro '-', rimuovo l'elemento dal 'controllo Source If InStr(strMode, "-") = 1 Then .RemoveItem (intItem) Next End If End With Screen.MousePointer = vbDefault End Sub |