PictureBox[] PictureboxArray = new PictureBox[5];
使用此行代码
分配5个图片箱PictureboxArray[0] = pbxK;
PictureboxArray[1] = pbxQueen;
PictureboxArray[2] = pbxKing;
PictureboxArray[3] = pbxJoker;
PictureboxArray[4] = pbxAce;
图像按照
分配Image[] Rollimage = new Image[5];
Rollimage[0] = Properties.Resources.K;
Rollimage[1] = Properties.Resources.Queen;
Rollimage[2] = Properties.Resources.King;
Rollimage[3] = Properties.Resources.Joker;
Rollimage[4] = Properties.Resources.Ace;
并且图片框的初始图像被分配为
pbxK.Image = Rollimage[0];
pbxQueen.Image = Rollimage[1];
pbxKing.Image = Rollimage[2];
pbxJoker.Image = Rollimage[3];
pbxAce.Image = Rollimage[4];
图像滚动的实际代码如下
for (int i = 0; i <= 4; i++)
{
if (PictureboxArray[i].Enabled == true)
{
Roll[i] = Rnd.Next(0, 4);
}
PictureboxImage(PictureboxArray[i], Roll[i]);
}
rnd是一个新的随机
Random Rnd = new Random();
滚入int以保存卷的索引
int[] Roll = new int[5];
一切正常,图片每隔一秒就滚动不同的图像,正如我预先定义的那样,现在我想做的就是分配这个
int[] PictureValues = new int[]{100, 225, 550, 775, 1000};
到图像
Image[] Rollimage = new Image[5];
意味着Properties.Resources.K;
的第一个滚动图像的实际值为100
等等,有没有办法做到这一点?
答案 0 :(得分:0)
所以..如果我正确理解你的问题,一旦选择了图像,你需要一种方法来反转它以将它与一个值相关联。一种方法可能如下:
注意:看来每个显示的图片框都被命名为king / joker等。所以如果你正在查看'老虎机'的前面,你会看到5个名为pbxk,pbxQueen,pbxKing,pbxJoker的盒子。 ,pbxAce但它们不一定显示与其名称相关联的图像..
int total = 0;
for(int i=0;i<Rollimage.Length;i++)
{
if(pbxk.Image.Equals(Rollimage[i]))
{
total += PictureValues[i];
}
if(pbxQueen...)
{
//Do the same thing for each pbx
}
}
我唯一不是百分之百的是比较方法。此外,您可以使用图片框的ImageLocation属性在分配图像时存储图像的路径,然后将其与文件名进行比较,以确定显示的图像。
如何比较图片的示例:Stack Overflow Image Compare
鉴于该示例,您可能希望尝试==使用当前的Image数组..如果这不起作用,您可能需要定义要比较的位图数组。对我来说似乎浪费了记忆,但它应该有用。
<强> 修改 强>
以下代码正确地合并了图像的值。我只是用两个资源组合了一个带有2个图片框,一个控制按钮和一个标签的快速示例程序。这应该展示执行所需的所有技术。
public partial class Form1 : Form
{
PictureBox[] PictureboxArray = new PictureBox[2];
Image[] Rollimage = new Image[2];
int[] pictureValues = new int[2];
public Form1()
{
InitializeComponent();
pictureValues[0] = 100;
pictureValues[1] = 200;
Rollimage[0] = Properties.Resources.TitleBar;
Rollimage[1] = Properties.Resources.Untitled;
PictureboxArray[0] = this.pictureBox1;
PictureboxArray[1] = this.pictureBox2;
PictureboxArray[1].Image = Rollimage[0];
PictureboxArray[0].Image = Rollimage[0];
}
private void button1_Click(object sender, EventArgs e)
{
int total = 0;
for(int i = 0;i<Rollimage.Length;i++)
{
foreach(var box in PictureboxArray)
{
if(box.Image == Rollimage[i])
{
total += pictureValues[i];
}
}
}
label1.Text = total.ToString();
}
}