Form(1) 内の写真のグループを切り替えようとしているときに問題が発生しました。選択した画像を表示するために picturebox.Image を使用しています。一定の時間間隔 (4 秒としましょう) の後、同じ写真グループ内のランダムな写真に切り替えます。
各写真を切り替えながら、別の Form(2) を 1 秒間表示して、Form(1) に戻りたいと思います。
Form(1) の私のコード:
public partial class Form1: Form
{
public static Timer time;
public static Form mod;
public Form1()
{
InitializeComponent();
time = new Timer();
mod = new Form2();
mod.Owner = this;
mod.Show();
this.Hide();
RunForm1();
}
public void RunForm1()
{
for (int i = 0; i < groupSize; i++)
{
mod.Owner = this;
mod.Show();
this.Hide();
}
}
}
Form(2) の私のコード:
public partial class Form2: Form
{
public static Timer time;
public int index = -1;
public List<Image> images;
public DirectoryInfo dI;
public FileInfo[] fileInfos;
public Form2()
{
InitializeComponent();
images = new List<Image>();
time = new Timer();
dI = new DirectoryInfo(@"C:\Users\Documents\Pictures");
fileInfos = dI.GetFiles("*.jpg", SearchOption.TopDirectoryOnly);
foreach (FileInfo fi in fileInfos)
images.Add(Image.FromFile(fi.FullName));
index = images.Count;
time.Start();
RunForm2();
}
public void RunForm2()
{
Random rand = new Random();
int randomCluster = rand.Next(0, 1);
while (index != 0)
{
pictureBox1.Image = images[Math.Abs(index * randomCluster)];
setTimer();
index--;
}
}
public void setTimer()
{
if (time.Interval == 4000)
{
this.Owner.Show();
this.Close();
}
}
}
このコードの私の主な問題は次のとおりです。1.時間が更新されていません。つまり、time.Intervalは常に100に設定されています2.理由はわかりませんが、写真はpicturebox.Imageに表示されませんが、デバッグ中モードは、写真が適切に選択されていることを示しています。
助けてくれてありがとう!ロイ。