【问题标题】:How do I create an array of PictureBox using a loop?如何使用循环创建一个 PictureBox 数组?
【发布时间】:2018-04-12 01:40:48
【问题描述】:

我需要创建 49 个图片框,然后将它们放在一个窗体上。 我在想类似的东西

Public Class Form1
   Dim grid() as PictureBox
   Public Sub Form_Load () Handles Me.Load
      For i = 0 to 48
         grid(i) = New PictureBox
         grid(i).Visible = True
         Me.Controls.Add(grid(i))
      Next
   End Sub

调试控制台告诉我 grid(i) = Nothing

【问题讨论】:

  • 这些都将在同一个位置
  • 我知道,但如果我设法创建它们,将它们分散开来很容易
  • 使用 flowlayoutpanel 而不是数组可能更容易
  • 不会引发超出范围的异常吗?

标签: .net arrays vb.net picturebox


【解决方案1】:
Dim grid(0 to 48) As PictureBox
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
        For i = 0 To 48
            grid(i) = New PictureBox
            Me.Controls.Add(grid(i))
        Next
    End Sub

 Dim grid(48) As PictureBox
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
            For i = 0 To 48
                grid(i) = New PictureBox
                Me.Controls.Add(grid(i))
            Next
        End Sub

Dim grid() As PictureBox
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
        redim grid(48)
        For i = 0 To 48
            grid(i) = New PictureBox
            Me.Controls.Add(grid(i))
        Next
    End Sub

如果您不喜欢这个限制并且必须重新调整您的数组,那么请使用列表。

 Dim grid As List(of PictureBox)
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
           grid=new list(of picturebox)
            For i = 0 To 48
                grid.add(New PictureBox)
                Me.Controls.Add(grid.item(grid.count-1))
            Next
        End Sub

【讨论】:

  • 不是 grid(i) 什么都不是。是 grid() 没有初始化
  • 这与我所做的有什么不同?您只是将数组大小限制为 49。
  • 您正在寻求帮助。我在评论中给出了你的代码为什么不起作用的答案。我没有限制数组。我正在初始化它
  • @RicRev 他没有限制数组大小。他给了它任何大小。如果没有大小,您所拥有的只是一个不指向任何内容的变量引用。如果您习惯于像 javascript 这样的语言,其中数组是动态的,那么在正式的计算机科学意义上,它们根本就不是真正的数组。它们是具有一些类似数组属性的集合。实数数组具有固定大小。但即使这样也行不通。您还想为每个 PictureBox 设置一个位置,否则它们将在位置 (0, 0) 处相互堆叠。
  • 哦,VB.Net 使用最后一项的索引来定义数组,而不是项的数量。因此,一个包含 49 个项目(索引从 0 到 48)的数组使用 48 下标声明。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-23
  • 2012-05-01
  • 1970-01-01
  • 2019-08-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多