arrays - 你调用的对象是空的

标签 arrays vb.net string controls

该程序的目的是运行一系列图片框并将其 .image 属性设置为特定图像。我不断收到错误“对象引用未设置到对象的实例”。来自显示“DirectCast(Me.Controls(pic(i)), PictureBox).Image = My.Resources.glass_buttonred”的行......奇怪的是,如果我将该代码移到 for 循环之外,它就会运行美好的。

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim pic(2) As Object

    For i = 0 To 2
        pic(i) = "picturebox" + Convert.ToString(i)

        DirectCast(Me.Controls(pic(i)), PictureBox).Image = My.Resources.glass_buttonred
    Next

    Label1.Text = pic(1)
End Sub

这是工作代码。谢谢!希望它能帮助其他想要将字符串转换为控制对象的人

Dim pic(2) As Object

For i = 0 To 2
    pic(i) = "picturebox" + Convert.ToString(i + 1)

    DirectCast(Me.Controls(pic(i)), PictureBox).Image = My.Resources.glass_buttonred
Next

Label1.Text = pic(1)

最佳答案

问题可能是 Me.Controls 区分大小写。如果您使用设计器来构建这些,您可能需要:

' Note the upper case letters below
pic(i) = "PictureBox" + (i + 1).ToString()
DirectCast(Me.Controls(pic(i)), PictureBox).Image ' ...

默认情况下,设计者将把控件命名为“PictureBox1”(第一个控件),将第二个控件命名为“PictureBox2”(与大小写相关)。

关于arrays - 你调用的对象是空的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19056156/

相关文章:

jquery - jquery中如何填充数组

Javascript - 处理大数组时的内存问题

.net - 在 .NET 中检索 DLL 信息

c++ - 在默认参数上重载方法

Python:使用 .format 方法用列表项填充字符串

c++ - 返回一个带有随机选项和局部变量的 char 函数

javascript - 创建多项选择测验 "game"

arrays - 使用 for 循环连接多个元胞数组?

c# - WPF 中的回历和公历?

sql - 在 VB.Net 中使用 SQL 连接到 Access 数据库