我正在用Visual Basic编程。 我有一个表格。
表格1包含: nameTextBox addNameButton namesListBox generateButton
week1TextBox week2TextBox week3TextBox week4TextBox
用户需要转到表单1并在文本框中键入名称,然后将名称添加到列表框中。用户将在列表框中添加4个名称。因此,ListBox将包含名称:Adam,Brenda和Carol。
单击generateButton时,必须按顺序将3个名称写入文本框。所以week1TextBox应该包含“Adam”,week2TextBox应该包含“Brenda”等...但是一旦将姓氏(在本例中为“Carol”)写入文本框,循环应该重新开始。最终,最多可能有50周的文本框(所以周50TextBox)。所以循环需要反复重复。
答案 0 :(得分:0)
由于您的问题中缺少源代码,我真的不确定布局的确切外观,我只能提供一些建议/建议。
我建议您创建列表框控件,输入文本框和按钮以将名称添加到列表框中。除此之外,还添加了可滚动面板。 (不确定该控件的确切术语在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
- 您的索引变量,您将按顺序访问项目,然后在 i
超出范围时从ListBox项目集合的开头重复。“ p>
我还鼓励您根据需要动态生成TextBox控件,而不是手动添加50个或更多TextBox控件。