Рейтинг:
5
Maciej Los
Взгляните на приведенный ниже код:
'variables
Dim i As Integer, j As Integer, k As Integer
'destination listbox: ListBox2 to 4
Dim dstBox As ListBox = Nothing
'source listbox
Dim srcBox As ListBox = Me.ListBox1
'loop through listboxes
For i = 2 To 4
'set destination listbox
dstBox = DirectCast(Me.Controls(String.Concat("ListBox", i)) ,ListBox)
'move items
For j = 1 To 5
'copy last item from ListBox1 to ListBoxN
dstBox.Items.Add(srcBox.Items(srcBox.Items.Count()-1))
'remove last item from ListBox1
srcBox.Items.RemoveAt(srcBox.Items.Count()-1)
Next 'j
Next 'i
Member 10285969
милый. Пожалуйста, я действительно не получаю for i=2 to 4 для циклического перебора списка, и почему бы не начать отсчет с 0 до 4?
Пожалуйста, не обижайтесь на мой вопрос. Я программист-самоучка.
Maciej Los
Потому что вы хотите переместить элементы из ListBox1 в ListBox2, ListBox3 и ListBox4.
Member 10285969
сейчас я использую visual studio 2015 и нижеприведенная строка кода не работает
установленные пунктом списка
dstBox = DirectCast(Me.Controls(String.Concat("ListBox", i)) ,ListBox)
Member 10285969
ладно. Спасибо за ваш ответ. У меня есть еще одна проблема. Как насчет того, чтобы вместо этого создать список с кодом из панели инструментов как:
Дим список2 как новый элемент управления ListBox
Будет ли ваш код по - прежнему работать?
Maciej Los
Да, с небольшими изменениями.
Member 10285969
спасибо. Это меня очень спасает
Maciej Los
Всегда пожалуйста.
Maciej Los
Был ли мой ответ полезен? Если да, то можете ли Вы отметить мое решение как ответ? Используйте зеленую кнопку - формально, чтобы удалить ваш вопрос из списка без ответа.
CHill60
5'd. правильные примеры всегда лучше! :-)
Maciej Los
Спасибо, Кэролайн.
Я не уверен, что это правильное решение, но единственное, которое пришло мне в голову в тот момент ;) Правильным было бы, когда код работает с данными, а не с элементами управления forms. Иногда такое решение, как ваше, гораздо лучше моего ;)
Рейтинг:
1
CHill60
Вам нужно начать "с другого конца" списка, если вы собираетесь удалять элементы.
Если вы думаете о списке из 3 пунктов
Item 1 = "A"
Item 2 = "B"
Item 3 = "C"
Если вы затем удалите пункт 2 все ниже этого перетасовывается так
Item 1 = "A"
Item 2 = "C"
Пункт 3 больше не существует.
Вместо того чтобы иметь
j
в качестве отдельного счетчика - есть подпрограмма, которая добавляет элементы от n до m в список и удаляет из оригинала - а затем вызывает это в цикле
Member 10285969
не могли бы вы объяснить, что вы подразумеваете под кодом, потому что я программист-самоучка.
Спасибо
Member 10285969
пожалуйста, помогите мне сделать программное обеспечение многозадачным, взяв из списка один за другим и просматривая веб-браузер. Я использовал два form.timer, но они продолжают использовать один и тот же элемент из первого списка, даже после обмена элементами и даже с помощью synclock.
CHill60
Это совершенно новый вопрос, поэтому я предлагаю вам опубликовать новый вопрос с кодом. Теперь я могу сказать вам что таймер это неправильный путь но не видя вашего кода я не могу сказать почему он продолжает использовать один и тот же элемент