将图片框添加到 Windows 窗体

Posted

技术标签:

【中文标题】将图片框添加到 Windows 窗体【英文标题】:Adding PictureBoxes to Windows Form 【发布时间】: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 的随机数。 【参考方案1】:

下:

peoples.Add(pictureBox)

添加:

Me.Controls.Add(pictureBox)

这是一个 C# 参考(很容易翻译成 VB):

https://support.microsoft.com/en-us/help/319266/how-to-programmatically-add-controls-to-windows-forms-at-run-time-by-u

【讨论】:

【参考方案2】:

使用流式布局面板,定义对象的大小(宽、高),然后简单地将它们添加到流式布局面板,如果图片框列表的长度比面板的高度。

FlowLayoutPanel1.controls.add(picturebox_object)

【讨论】:

以上是关于将图片框添加到 Windows 窗体的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 窗体中将 list<T> 添加到列表框的类型错误

在 Windows 窗体 C# 中创建 POI 映射。如何将图标(图像)放在地图上(图片框中的现有图像)?

Windows 窗体中的刷新组合框

在 C# windows 窗体中制作的保存/加载控件

为啥我的图片框动画没有按预期工作(C# Windows 窗体应用程序)?

pywin32 怎么获取 windows 的窗体内文本框的内容