我正在用 VB.NET 编写一个纸牌游戏程序。 我遇到了一个问题。 Computer_Flow 在设计窗口中像 System.Windows.Forms.Panel 一样手动声明。我以编程方式创建了一个像这样的图片框:
Dim P As PictureBox = New PictureBox
P.Size = New Point(Cards_Width, Cards_Height)
P.SizeMode = PictureBoxSizeMode.StretchImage
P.Image = Image.FromFile(Images_Folder_Path & "Back.png")
P.Tag = Deck(DI)
P.Margin = New Padding(1)
Computers_Hand(DI) = Deck(DI)
Computer_Flow.Controls.Add(P)
稍后我想更改 PictureBox 图像。我正在尝试这样改变它:
Computer_Flow.Controls(i).image = Image.FromFile(Images_Folder_Path & "Back.png")
但我收到一条错误消息:“image”不是 System.Windows.Forms.Control 的成员。
谁能帮我解决这个问题?
谢谢!
请您参考如下方法:
您必须将控件
cast
到图片框
才能获得结果。 试试这个,
CType(Computer_Flow.Controls(i),PictureBox).image=Image.FromFile(Images_Folder_Path & "Back.png")
CType
编辑:
您可以通过这样有效的方式轻松避免 invalidCastException
,
If TypeOf Computer_Flow.Controls(i) Is PictureBox then
CType(Computer_Flow.Controls(i),PictureBox).image=Image.FromFile(Images_Folder_Path & "Back.png")
End If