Skip to main content
 首页 » 编程设计

vb.net通过面板控件将图像分配给picturebox

2024年09月07日11TianFang

我正在用 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 

TypeOf