从程序中的资源文件中提取随机图像

时间:2019-04-17 18:18:35

标签: c#

我正在尝试创建一个简单的随机发生器,单击按钮,然后会出现不同的图像。我已将所有图像放入resource1.resx部分(其中的68个)中,并分别命名为1_png,2_png等。

我正在尝试从资源部分中随机提取不同的图像,但始终收到标识符错误。这是我在Visual Studio和C#中的第一个项目,所以我有点迷路了。到目前为止,这就是我所拥有的。

我尝试更改文件本身的名称,尝试更改代码以接受新图像,但无济于事。

 private void button1_Click_1(object sender, EventArgs e)
        {
            for (var i = 0; i < 10; i++)
            {
                p1 = IntUtil.Random(1, 8);
                p2 = IntUtil.Random(1, 8);
                p3 = IntUtil.Random(1, 8);
                p4 = IntUtil.Random(1, 8);
            }

            if (pictureBox1.Image != null) pictureBox1.Image.Dispose();
            pictureBox1.Image = Resource1.(p1.ToString() + "_png");

            if (pictureBox2.Image != null) pictureBox2.Image.Dispose();
            pictureBox2.Image = Resource1.(p2.ToString() + "_png");

            if (pictureBox3.Image != null) pictureBox3.Image.Dispose();
            pictureBox3.Image = Resource1.(p3.ToString() + "_png");

            if (pictureBox4.Image != null) pictureBox4.Image.Dispose();
            pictureBox4.Image = Resource1.(p4.ToString() + "_png");

我期望发生的是,当我按下按钮时,不同的随机图像将出现在4个图片框中。

1 个答案:

答案 0 :(得分:0)

Resource1.(...)是无效的表达式。要从资源动态获取值,请使用ResouceManager

var rm = Resource1.ResourceManager;
var i = 2;
var image = (Bitmap)rm.GetObject(i.ToString() + "_png");