我必须做一个程序,我可以生成Button,Label,ImageBox并使用它们。现在我正在搜索如何在创建的ImageBox中更改图像,它写道:此元素不存在。如何访问创建的元素?
Dim PictureB As New PictureBox
PictureB.Size = New System.Drawing.Size(200, 120)
PictureB.Location = New System.Drawing.Point(350, 20)
PictureB.BorderStyle = BorderStyle.Fixed3D
TabPage1.Controls.Add(PictureB)
"New sub"
OpenFileDialog1.ShowDialog()
PictureB.ImageLocation = OpenFileDialog1.FileName
答案 0 :(得分:0)
PictureB
因为它只存在于您作为临时私有变量创建的子过程中。但是,您创建的PictureBox确实存在于TabPage1.Controls
中,因此您可以循环访问它。
根据您的要求,您似乎还需要获得您创建的精确PictureBox,因此我建议您在创建时添加一个名称,例如PictureB.Name = "Pic1"
。我在下面添加了一个示例Sub,显示了如何实现目标。
Public Sub SetImage(ByVal PictureBoxName As String)
If OpenFileDialog1.ShowDialog = DialogResult.OK Then
For Each c As Control In TabPage1.Controls
Dim pb As PictureBox = TryCast(c, PictureBox)
If Not IsNothing(pb) Then
If pb.Name = PictureBoxName Then
pb.ImageLocation = OpenFileDialog1.FileName
Exit For
End If
End If
Next
End If
End Sub
或者,您可以考虑创建事件句柄:这将更多涉及,但是将是一个很好的学习体验。