Поскольку в вашем вопросе отсутствует исходный код, я действительно не уверен точно, как должен выглядеть макет, я могу только предложить некоторые советы/предложения.
Я бы рекомендовал создать ваш элемент управления списком, ввести текстовое поле и кнопку, чтобы добавить имена в список. В дополнение к этим, однако, также добавьте прокручиваемую панель. (Не знаете, какой именно термин для этого элемента управления находится в VB.net, это было давно, так как я работал с этим языком.) Поскольку это похоже на переменное количество элементов на панели, когда пользователь переходит к генерации списка имен, я хотел бы использовать следующий грубый псевдокод:
Dim OutputTexts As New ArrayList ' This is only here if you want to work with these textboxes later
Private Sub CreateOutput() Handles btnGenerate.Click
pOutputPanel.Controls.Clear()
OutputTexts.Clear()
Dim NextX As Integer = 0 ' Pretty much unnecessary value, but included in case you want to mess with this
Dim NextY As Integer = 0
For i As Integer = 0 To Convert.ToInt32(txtWeekCount.Text)
Dim txtName As New TextBox
txtName.Text = lbNameList.Item(i Mod lbNameList.Items.Count)
txtName.Location = new Point(NextX, NextY) ' Play with this as necessary
NextY += 50 ' Play with this as necessary
OutputTexts.Add(txtName)
pOutputPanel.Controls.Add(txtName)
Next
End Sub
Опять же, это очень псевдокод, так что я бы не поощрять копирования и вставки, но дать ему читать, убедитесь, вы все это понимаете, а затем попробуйте реализовать что-то подобное. Там может быть более простой способ сделать это, но я не запрограммирован в VB.NET, вероятно, более 2 лет (по крайней мере). Тем не менее, самое главное здесь следующая строка: lbNameList.Item(i Mod lbNameList.Items.Count)
. В соответствии с Mod
, указав переменную индексации, вы будете последовательно обращаться к пунктам, а затем повторять с начала сбора элементов списка ListBox i
находится за пределами допустимого диапазона.
Я также рекомендовал бы динамически генерировать элементы управления TextBox по мере необходимости, а не вручную добавлять 50 или более элементов управления TextBox.
Домашнее задание? Независимо от того, чтобы получить помощь от сообщества SO, я бы посоветовал вам включить любой код, который вы пытались сделать до сих пор. – SpencerD
Мы здесь, чтобы помочь вам преодолеть определенные проблемы, с которыми вы столкнулись при попытке решить проблему, а не дать вам код, чтобы вам не пришлось пытаться его решить в первую очередь. Как и всегда, начинайте, забывая, что это проблема программирования. Если вам нужно было написать инструкции для кого-то, чтобы выполнить эту задачу с помощью ручки и бумаги, не могли бы вы это сделать? Конечно, можно. Это не займет никакого опыта программирования. Итак, продолжайте и делайте это. Как только вы закончите, вы можете написать код для реализации этих инструкций. – jmcilhinney