所以我想创建一个浓度风格的内存匹配游戏。但现在我只想专注于填充图片框。每次游戏加载时,我都希望随机播放图片。我的老师推荐使用控制阵列,并发送给我这个链接http://www.acthompson.net/DotNet/ControlArrays.htm使用控制阵列来洗牌图片盒
我还是很困惑,因为到处都是红线,我不知道如何将图像添加到程序中。最初,我想在构建时添加picturebox,但本教程建议在运行时进行。
InitializeComponent()和card()的下方有红线。为什么?我如何添加已保存在文件中的图像?
另外我想知道我是否需要双类声明?该类的名称是'Form','Form1'是指表单本身。当我只声明'Form1'时,它表示'类Form1和部分类Form1冲突'。我可以只声明'Form'并且可以与表单交互吗?
tldr;如何在每次游戏运行时用可以洗牌的图片框填充控制数组?
预先感谢您。到目前为止我的代码:
Public Class Form
Public Class Form1
Inherits System.Windows.Forms.Form
Dim cards(23) As PictureBox
Public Class Form
Public Class Form1
Inherits System.Windows.Forms.Form
Dim cards(23) As PictureBox
Sub New()
InitializeComponent()
cards = New PictureBox() {PictureBox1, PictureBox2, PictureBox3, PictureBox4, PictureBox5, PictureBox6, PictureBox7, PictureBox8, PictureBox9, PictureBox10, PictureBox11, PictureBox12, PictureBox13, PictureBox14, PictureBox15, PictureBox16, PictureBox17, PictureBox18, PictureBox19, PictureBox20, PictureBox21, PictureBox22, PictureBox23, PictureBox24}
End Sub
End Class
末级
我已经试过这和其他各种配置,但TI仍不能正常工作。我在哪里犯了一个错误?
UPDATE:
所以我这个玩耍了和我有几个问题。 1.它说道没有声明,所以我做了IO.Path,似乎没关系。我不知道它是否合适,虽然 2.它说,PictureBox1等,没有宣布和无法访问。 Img文件夹相同。我假设路径文件夹我的图片是不正确
公共类Form1中
'picture boxes
Private pBoxes As PictureBox()
'images
Private imgs As String()
'random number generator
Private rNum As Random
'cover image
Private coverImg As String = "bg.jpeg"
'timer
Private dt As DateTime
'turns cards
Private pbFirst As PictureBox
Private pbSecond As PictureBox
Private matches As Int32 = 0
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim ImgFolder As String
rNum = New Random()
pBoxes = New PictureBox() {PictureBox1, PictureBox2, PictureBox3, PictureBox4, PictureBox5, PictureBox6, PictureBox7, PictureBox8, PictureBox9, PictureBox10, PictureBox11, PictureBox12, PictureBox13, PictureBox14, PictureBox15, PictureBox16, PictureBox17, PictureBox18, PictureBox19, PictureBox20, PictureBox21, PictureBox22, PictureBox23, PictureBox24}
'where images are stored
ImgFolder = IO.Path.Combine(Environment.GetFolderPath("H:\Test images"))
coverImg = IO.Path.Combine(ImgFolder, coverImg)
For Each p As PictureBox In pBoxes
p.ImageLocation = coverImg
Next
'NewGame()
End Sub
'Private Sub NewGame()
' reset everything that matters
'matches = 0
'pbFirst = Nothing
'pbSecond = Nothing
' repick, reshuffle
'PickImages()
'Shuffle()
'dt = DateTime.Now
'tmrMain.Enabled = True
'End Sub
末级
另一个更新:
我也有我的第一个版本pictureboxes但不在这一个。不能相信我犯了这样一个愚蠢的错误......这是固定的,但它仍然说我的ImgFolder是未声明和无法访问。顺便说一句,非常感谢你的耐心和帮助。
进口System.IO
公共类Form1中
'array of picture boxes
Private pBoxes As PictureBox()
'array of images
Private imgs As String()
'random number generator
Private rNum As Random
'cover image
Private coverImg As String = "bg.jpeg"
'timer
Private dt As DateTime
'turns cards
Private pbFirst As PictureBox
Private pbSecond As PictureBox
Private matches As Int32 = 0
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
rNum = New Random()
pBoxes = New PictureBox() {PictureBox1, PictureBox2, PictureBox3, PictureBox4,
PictureBox5, PictureBox6, PictureBox7, PictureBox8,
PictureBox9, PictureBox10, PictureBox11, PictureBox12, PictureBox13, PictureBox14, PictureBox15, PictureBox16, PictureBox17, PictureBox18, PictureBox19, PictureBox20, PictureBox21, PictureBox22, PictureBox23, PictureBox24}
' where you keep YOUR images
ImgFolder = "F:\COMPUTER SCIENCE\Test images"
coverImg = Path.Combine(ImgFolder, coverImg)
For Each p As PictureBox In pBoxes
p.ImageLocation = coverImg
Next
'NewGame()
End Sub
'Private Sub NewGame()
' reset everything that matters
'matches = 0
'pbFirst = Nothing
'pbSecond = Nothing
' repick, reshuffle
'PickImages()
'Shuffle()
'dt = DateTime.Now
'tmrMain.Enabled = True
'End Sub
末级
而不是洗牌UI控制,这将需要重置位置,只是洗牌映射到他们的图像。 'InitializeComponent()'属于'Sub New',你不能引用任何控件,直到它们被创建,它是在Sub New运行之后 – Plutonix
我不确定我是否正确理解你。是这样的:公用Sub新板() 的InitializeComponent() 卡(0)= PictureBox1 卡(1)= PictureBox2 卡(2)= PictureBox3 卡(3)= PictureBox4 卡(4)= PictureBox5 cards(5)= PictureBox6 cards(6)= PictureBox7 etc End Sub – AlphaOne
@AlphaOne请尝试Plutonix建议的操作,然后相应编辑您的问题。 –