我在C#項目中有多個圖像,我必須隨機訪問它們。 假設我有5張圖像(_1,_2,...),並生成1到5之間的隨機數字。 如何訪問與該數字相對應的文件?C#按名稱訪問圖像
pictureBox.Image = Properties.Resources._1
我在C#項目中有多個圖像,我必須隨機訪問它們。 假設我有5張圖像(_1,_2,...),並生成1到5之間的隨機數字。 如何訪問與該數字相對應的文件?C#按名稱訪問圖像
pictureBox.Image = Properties.Resources._1
你可以做這樣的事情:
Random rnd = new Random();
this.pictureBox1.Image = new Bitmap(System.IO.Path.Combine("youFolder",String.Format("_{0}.yourExtension",rnd.Next(0,6)));
爲了創建隨機數我有使用Next(min,max)
隨機的方法。然後,我只需將一個新的圖像添加到pictureBox。
Here你可以找到Path.Combine
而且here Random.Next(最小值,最大值)的基準的參考;
這不是一個答案,因爲他想訪問一個propertie –
看到這個sample:
Random random= new Random();
string path=random+".jpeg";
Image image = Image.FromFile(path);
pictureBox.Image = image;
pictureBox.Height = image.Height;
pictureBox.Width = image.Width;
您還可以使用:
Random random= new Random();
string path=random+".jpeg";
pictureBox.Image = new Bitmap(path);
這不是一個答案,因爲他想訪問一個propertie –
只要使用類似這樣
Random rnd = new Random();
int im = rnd.Next(0, 5);
Image[] images = new Image[]{Properties.Resources._1,Properties.Resources._2,Properties.Resources._3,Properties.Resources._4,Properties.Resources._5}
pictureBox.Image = images[im];
使用此:
//generate your random number
Random rnd = new Random();
string rndNumber = rnd.Next(0,6).ToString();
var myImg = ResourceManager.GetObject(rndNumber) as Bitmap;
如果圖像文件名一樣_1,_2
等則:
string rndNumber = "_" + rnd.Next(0,5).ToString();
假設,你的圖像資源被命名爲_1,_2,_3, ... 然後,你可以做這樣的事情:
int maxNumberOfImages = ..... the number of images you have
Random rnd = new Random();
pictureBox.Image = Properties.Resources.ResourceManager.GetObject(
String.Format("_{0}", rnd.Next(maxNumberOfImages) + 1)
) as Bitmap;
試試這個, 保護無效的Page_Load(對象發件人,EventArgs的){ 如果 (!的IsPostBack){ getImage(); } }
private void getImage()
{
Random rand = new Random();
int i = rand.Next(1, 6);
Image1.ImageUrl = "~/image/" + i.ToString() + ".jpg";
Label1.Text = "image no :" + i.ToString();
}
protected void Button1_Click(object sender, EventArgs e)
{
getImage();
}
付諸5個圖像的引用到一個數組並使用RNG挑出單個圖像 –
數組是可行的。另一種不依賴數組的方法是使用'Properties.Resources.ResourceManager.GetObject'(與String.Format一起生成數字資源名稱)。 – elgonzo