【发布时间】:2020-10-19 10:10:50
【问题描述】:
我一直在尝试创建一个代码来模拟学校的某事(还没有到那个)队列,并试图创建多个图片框并将它们存储在一个列表中。出于某种原因,它们没有出现...有人有什么建议吗?
公开课表1
Dim peoples As New List(Of PictureBox)()
Private Sub Form1_Load(sender As Object, e As EventArgs) 处理 MyBase.Load
Timer1.Enabled = 真
Timer1.Interval = 随机数(100, 500)
结束子
子循环()
Timer1.Interval = 随机数(100, 500)
结束子
函数随机数(下为整数,上为整数)
随机化()
返回 Int((upper * Rnd()) + lower)
结束功能
Private Sub Timer1_Tick(sender As Object, e As EventArgs) 处理 Timer1.Tick
循环()
新队列成员()
结束子
私有子 newqueuemember()
将图片框调暗为新图片框
图片框宽度 = 50
图片框.Visible = True
图片框.高度 = 50
Dim selectperson As Integer = randomnumber(1, 3)
如果选择人 = 1 那么
图片框.Image = My.Resources.person1
ElseIf 选择人 = 2 则
pictureBox.Image = My.Resources.person2
别的
图片框.Image = My.Resources.person3
万一
pictureBox.Location = 新点(10, 20)
peoples.Add(图片框)
结束子
结束类
【问题讨论】:
-
您正在创建
PictureBoxes好吧,但是您实际上是在哪里将它们添加到表单中?提示:无处。 -
简单地将它们添加到表单中没有任何逻辑或想法将没有任何帮助,这些图片框将在表单上的位置(它们都将直接位于每个图片框的顶部,您只会看到其中之一)。您需要想出一种方法来安排它们并相应地设置它们的
.Location属性。或者,您可以将它们添加到 TabeLayoutPanel,或者可能会为您安排它们的 FlowLayoutPanel:FlowLayoutPanel1.Controls.Add(pictureBox)。 -
去掉randomnumber函数,使用.net Random类。单个实例可用于所有方法。在表单级别
Private Rnd As New Random然后像这样使用Timer1.Interval = Rnd.Next(100, 500)它将返回一个从 100 到 499 的随机数。