2016-06-10 78 views
0

我必須做一個程序,我可以生成按鈕,標籤,圖像框,並與他們一起工作。現在我正在搜索如何在創建的ImageBox中更改圖像,它寫道:此元素不存在。我怎樣才能訪問創建的元素?如何更改生成的圖像盒中的圖像vb

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 
+1

'PictureB'不存在於您的新子中,但確實存在於'TabPage1.Controls'中。您應該遍歷「TabPage1.Controls」,直到找到所需的圖片框,然後設置圖像。 – vbnet3d

回答

0

PictureB是不是在你的「新亞」訪問,因爲它只有在您創建它作爲一個臨時,私人變量的子過程的存在。但是,您創建的PictureBox確實存在於TabPage1.Controls中,因此您可以循環訪問它。

根據您的要求,您似乎也需要獲得您創建的確切的PictureBox,因此我建議在創建它時添加一個Name,如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 

或者,您可以考慮創建事件句柄來代替:這會涉及更多,但會是一個很好的學習體驗。