vb.net - 随机化图像将进入的图片框
问题描述
我对视觉基础非常陌生,想知道如何将图像放入随机图片框中。我有 4 个图片框和一张图片。当您单击“Jouer”按钮时,我希望图像出现在计算机选择的图片框中。提前致谢。这是我到目前为止尝试过的代码:
Private Sub btnJouer_Click(sender As Object, e As EventArgs) Handles btnJouer.Click
T(0) = PictureBox1
T(1) = PictureBox2
T(2) = PictureBox3
T(3) = PictureBox4
lbl1.Text = lbl1.Text - 1
Dim rand As New Random()
For i = 0 To 3
Randomize()
Image = My.Resources.mario1
Trouver = Image.ToString
Trouver = rand.Next(0, T.Count)
Next
End Sub
解决方案
通过对四个 PictureBox 进行一些硬编码,只需使用 Case 语句即可完成
Dim rand As New Random()
Dim image = My.Resources.mario1
Dim i = rand.Next(4) ' 0, 1, 2, 3
Select Case i
Case 0
PictureBox1.Image = image
Case 1
PictureBox2.Image = image
Case 2
PictureBox3.Image = image
Case 3
PictureBox4.Image = image
End Select
Randomize 旨在与旧式 vb.net Rnd 函数一起使用,而 Random 类不需要它。
无需硬编码四个 PictureBox,您可以指定 PictureBox 的数量和名称中的前缀
Dim rand As New Random()
Dim image = My.Resources.mario1
Dim i = rand.Next(4) ' 0, 1, 2, 3
Dim numberOfPictureBoxes = 4
Dim pictureBoxPrefix = "PictureBox"
Dim myPictureBox = DirectCast(Me.Controls.Find($"{pictureBoxPrefix}{i + 1}", True).Single(), PictureBox)
myPictureBox.Image = image
当然,你可能想在设置一个之前清除所有的PictureBoxes,所以它们都被清除了。您可以使用 Me.Controls,但 PictureBoxes 必须在表单中,而不是在不同的控件中,例如 Panel 或 GroupBox。如果是这种情况,请改用该容器:container.Controls.Cast(Of Control...
Dim myPictureBoxes = Me.Controls.Cast(Of Control).Where(Function(c) c.Name.Contains(pictureBoxPrefix)).Cast(Of PictureBox)()
For Each pb In myPictureBoxes
pb.Image = Nothing
Next
推荐阅读
- batch-file - 使用批处理,为什么 %string% GTR/GEQ 数等于 true?
- c++ - 如何使用 regex_replace 将字符串中的子字符串替换为另一个子字符串,同时保持整个文本的完整性?
- javascript - 在 Safari 中的任何视图下查看时无法查看网站的下部
- google-drive-api - 谷歌云共享表问题,找不到iam.gserviceaccount.com
- php - 在 Guzzle 中使用 ssl 验证模拟 curl 请求
- function - 如何在 Scilab 中使用 Newton Rapshon 方法找到函数的所有根?
- arrays - 将列解析为单独的数组
- javascript - 如何结合数字/字符串值在日历中输入值
- node.js - 如何使用通过 POST 发送的信息显示为消息?
- android - 多个错误 Unity(SDK APP 构建)(在 Mac 上)查看图片以获取信息