winforms 将随机背景图像分配给面板

ohfgkhjo  于 2022-11-17  发布在  其他
关注(0)|答案(5)|浏览(159)

我正在尝试将随机图像分配给面板:

System.Random randomNum = new System.Random();
int myInt = randomNum.Next(4);

if (Panel1.BackgroundImage != null)
{
    switch (myInt)
    {
        case 0:
            Panel1.BackgroundImage = @"C:\Users\etrit.bujupi\Desktop\IO-Etrit\CardGame\Images\2-Black.jpg";
    }
}

但是我的代码导致了一个错误:
无法将型别'string'隐含转换为'System.Drawing.Image'

qcbq4gxm

qcbq4gxm1#

以下代码可能会帮助您:

ImageList images = new ImageList();
images.Images.Add(Image.FromFile("C:\\pic1.bmp"));
images.Images.Add(Image.FromFile("C:\\pic2.bmp"));
//Fill with more images

//Make a Random-object
Random rand = new Random();
// This could also be a panel already on the Form
Panel p = new Panel(); 

//Pick a random image from the list
p.BackgroundImage = images.Images[rand.Next(0, images.Images.Count - 1)];

希望这对你有帮助。

8iwquhpp

8iwquhpp2#

使用此选项:

Panel1.BackgroundImage = System.Drawing.Bitmap.FromFile(yourPath);
enxuqcxy

enxuqcxy3#

System.Random randomNum = new System.Random();
        int myInt = randomNum.Next(4);

        if (Panel1.BackgroundImage != null)
        {
            switch (myInt)
            {
                case 0:
                    Panel1.BackgroundImage = System.Drawing.Bitmap.FromFile( @"C:\Users\etrit.bujupi\Desktop\IO-Etrit\CardGame\Images\2-Black.jpg");

            }
        }
tcbh2hod

tcbh2hod4#

将图像添加到项目资源中,然后按如下方式使用:

Panel1.BackgroundImage = Properties.Resources.MyImage;
kmb7vmvb

kmb7vmvb5#

更新的解决方案,使用现有的VS 2022功能:

  • 设计显示文件中图像所需的windows窗体和System.Drawing.Form对象
  • 转到项目--〉属性--〉资源,并使用添加资源添加所有图像
  • Visual Studio会自动将程式码加入至Resources.resx和Resources.Designer.cs档案。请勿手动编辑这些档案。
  • 在自订设计工具中,移至[检视程式码]并加入下列项目:
Random rand = new Random();
 int rnd = rand.Next(0, 3);  //random number from 0 to 3 (4 images in my case)
 switch (rnd)
 {
     case 0:
         this.BackgroundImage = global::myProject.Properties.Resources.image1;
         break;
     case 1:
         this.BackgroundImage = global::myProject.Properties.Resources.image2;
         break;
     case 2:
         this.BackgroundImage = global::myProject.Properties.Resources.image3;
         break;
     case 3:
         this.BackgroundImage = global::myProject.Properties.Resources.image4;
         break;
 }

其中,“image 1,2 etc”是您命名的图像引用名称。
应该行得通。

相关问题