0
我在3個不同的圖片框中隨機顯示圖像,並使用計時器控件以某個固定間隔更改它們。計時器控制不工作
當我關閉應用程序並再次打開它時,我得到的圖像是隨機顯示的,但我希望圖像隨機顯示使用計時器,但我不明白爲什麼計時器不工作!我在哪裏做錯了?
Random random = new Random();
List<string> filesToShow = new List<string>();
List<PictureBox> pictureBoxes;
public Form2()
{
InitializeComponent();
Timer timer2 = new Timer();
pictureBoxes = new List<PictureBox> {
pictureBox3,
pictureBox4,
pictureBox5
};
//ShowRandomImages();
// Setup timer
timer2.Interval = 1000; //1000ms = 1sec
timer2.Tick += new EventHandler(timer2_Tick);
timer2.Start();
}
private void ShowRandomImages()
{
foreach (var pictureBox in pictureBoxes)
{
if (!filesToShow.Any())
filesToShow = GetFilesToShow();
int index = random.Next(0, filesToShow.Count);
string fileToShow = filesToShow[index];
pictureBox.ImageLocation = fileToShow;
filesToShow.RemoveAt(index);
}
}
private List<string> GetFilesToShow()
{
string path = @"C:\Users\Monika\Documents\Visual Studio 2010\Projects\StudentModule\StudentModule\Image";
return Directory.GetFiles(path, "*.jpg", SearchOption.TopDirectoryOnly).ToList();
}
private void timer2_Tick(object sender, EventArgs e)
{
if (sender == timer2)
{
//Do something cool here
ShowRandomImages();
}
}
可能是一個範圍的問題,也許? 'timer2'在構造函數中聲明。嘗試在類中聲明它並在構造函數中初始化它。 – Tim
當我這樣做時,它給了我這個錯誤'錯誤'StudentModule.Form2.timer2'和'StudentModule.Form2.timer2''之間的歧義 – Durga
然後看起來你有'timer2'聲明兩次。在類中聲明它並在構造函數中實例化它。 – Tim