c# – 如何使用时间间隔在Windows窗体中切换照片?
发布时间:2020-12-15 21:41:40 所属栏目:百科 来源:网络整理
导读:我在尝试在表单(1)中切换一组照片时遇到问题. 我正在使用picturebox. Image来查看所选图片,并在一定的时间间隔(比如4Sec)后,切换到同一组照片中的随机照片. 在每张照片之间切换时,我想显示1Sec的另一个Form(2),然后返回Form(1). 表格(1)中的守则: public pa
我在尝试在表单(1)中切换一组照片时遇到问题.
我正在使用picturebox. Image来查看所选图片,并在一定的时间间隔(比如4Sec)后,切换到同一组照片中的随机照片. 在每张照片之间切换时,我想显示1Sec的另一个Form(2),然后返回Form(1). 表格(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(); } } } 表格(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:UsersDocumentsPictures"); 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(); } } } 我在这段代码中的主要问题是: 谢谢你的帮助! 解决方法
您需要使用计时器中的Tick事件来知道时间已过去. 检查间隔是否等于(==)4000,但需要将其设置为4000(time.Interval = 4000),然后启动计时器.然后Tick事件将在4秒后触发. 并且可以通过调用pictureBox1.UpdateLayout()来解决图像未显示的问题.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |