winforms 使用随机数反映图片框名称和资源图片

zf2sa74q  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(176)

我有四个图片盒。名字:pb 1pb 2pb 3,***pb 4***我有4个资源文件:梅花方块红心黑桃
资源文件包含一些法语卡片图片。其中一个名称是:纸牌-6-梅花.svg
所以我的问题是:如何用随机数来反映它们。
我的意思是-这里是代码的主要部分:

Random rnd = new Random();
            int color = rnd.Next(1,4+1);
            int value = rnd.Next(1,13+1);
            int pb_num = rnd.Next(1,4+1);
            textBox1.Text=color.ToString()+" "+value.ToString(); //this is just a helper data. It will never show to the user when the program is done
            switch (color) {
                case 1:             
                    if(value>=2 && value<=10){
                        pb??.Image = Projectname.cards_club.(Cards_+VALUE+_Club_svg).ToString();
    
                    }

我的问题是:如何使用之前生成的编号(存储为pb_num)这里是pb??.Image =,这里的问号是。这里是Projectname.cards_club.(Cards_+value+_Club_svg).ToString();我如何合并先前生成的随机数(存储为value)与图片的名称匹配?因此,使用此方法,我可以在picturebox中获取图片,其中一个随机数(例如5)显示了确切的牌。如果我得到5(value = 5),我想在图片框中显示 Cards-5-Club.svg
非常感谢您的回答,如果有什么不清楚的地方,请随时询问。

zed5wv10

zed5wv101#

好吧,我可以解决问题。:)

第一个:

“如何使用之前生成的数字(存储为pb_num),此处为pb??.Image =,问号为。“
答案太明显了(这是最容易找到的)
我用这个问题:Name of picturebox
而答案,则用一个厚厚的女巫标记着.(本:

第二个:

“这里是Projectname.cards_club.(Cards_+value+_Club_svg).ToString();,我如何将先前生成的随机数(存储为value)与图片名称组合在一起?“
很难找到答案。:/但是我找到了!:)
我用这个问题来解决它:How to retrieve Image from Resources folder of the project in C#

  • 这两个答案 *
    **这个:https://stackoverflow.com/a/55959810**和那个:https://stackoverflow.com/a/32156875
    因为我注意到我用了一种不同的方法来创建资源文件。所以,一开始我只是在解决方案资源管理器上用鼠标右键单击项目名称,然后选择Add〉〉New Item选项。在弹出窗口中,我选择了“Resource Files”选项。

这是一个很好的方法来存储图片,并反映他们,如果你确切地知道他们的名字,你想使用它“只是简单”。例如,如果你想使用程序集成图片时,你设置的图片框内容(见所附的图片!)。
我的错误方法是这样的(它没有错,只是没有给予我从资源调用指定图片的选项):1th pic2nd pic打印机

BUT正确的方法,如果要体现到自己的名字是下面链接中的方法,用图片举例说明:
然后我就把这个答案修改成:

我可以调用包含随机数的图片。:)

因此WORK的代码为:

Random rnd = new Random();
            int color = rnd.Next(1,4+1);
            int value = rnd.Next(1,13+1);
            int pb_num = rnd.Next(1,4+1);
            textBox1.Text=color.ToString()+" "+value.ToString(); //this is just a helper data. It will never show to the user when the program is done
            switch (color) {
                case 1:             
                    if(value>=2 && value<=10){
                        ((PictureBox)this.Controls["pb" + pb_num.ToString()]).Image = (Image)Properties.Resources.ResourceManager.GetObject("Cards_" + value + "_Club_svg");
    
                    }

我希望这能帮助一些人如何与类似的问题作斗争

相关问题