Я бы не использовать системные ресурсы для этого. Они не поддерживаются как файловая система для отключенного программного обеспечения.
Сделайте свои изображения в папке для своего приложения. Таким образом, они могут быть легко обновлены/изменены. Скажи:
C:\Ninjas - app
c:\Ninjas\images - images
Создать массив, содержащий эти изображения.
string[] files = System.IO.Directory.GetFiles("c:\ninjas\images");
Вам нужно будет поместить некоторые фильтры на GetFiles, чтобы вы могли получать снимки.
Теперь возьмите случайную позицию в этом массиве (вы уже показали, что знаете, как делать случайные числа).
У нас есть массив, давайте перетасовать ее, а затем вы можете пройти через них последовательно (путь быстрее, чем случайным образом выбирать на CPU будет любить вас за это.)
private string[] files;
private int currentIndex = 0;
private void initializeImages()
{
//Grab directories in your images directory
string appRoot = System.IO.Path.GetDirectoryName(Application.ExecutablePath);
files = System.IO.Directory.GetFiles(appRoot + @"\images");
Random rnd = new Random();
files = files.OrderBy(x => rnd.Next()).ToArray();
}
private void setImage()
{
pictureBox1.ImageLocation = files[currentIndex];
}
private void previousImage()
{
currentIndex = currentIndex > 0 ? currentIndex - 1 : 0;
setImage();
}
private void nextImage()
{
currentIndex = currentIndex < files.Length - 1 ? currentIndex + 1 : files.Length - 1;
setImage();
}
Пара вещей:
- Не печатайте путь к файлу. Имейте это в файле app.config и ссылайтесь на него.
- Вы можете поместить файл массива глобальным, чтобы он не запускался каждый раз.
Если вы хотите, чтобы это как слайд-шоу, который работает до тех пор, пока пользователь не отменит его, я бы рекомендовал следующее:
- использовать объект таймера, который вызывает метод, чтобы увеличить количество изображений, который меняет картину.
- Не используйте thread.sleep в вашем графическом интерфейсе, так как он приостанавливает ваш графический интерфейс - это нехорошо.
Если вы хотите добавить следующий/предыдущий кнопки, вы должны иметь глобальный индекс (скажем, currentIndex), который может быть увеличено/уменьшено, затем вызвать код, чтобы установить изображение
Что ваш ресурс ?? –
@ChrisGessler Ресурсы приложения – heron
@ChrisGessler обновлен. пожалуйста, посмотрите – heron