利用timer控件实现自动播放图片的功能(求解)

dong880424 2009-08-04 07:26:17
窗体里有一个 pictureBox 播放图片用的控件.一个 imageList 存储图片集合的控件. 还有个工具条.是放自动播放那个图片的.
当点击自动播放时.自动播放图片,再次点击停止.代码如下
在程序开始时设置了 index = 0;中间简略了代码


private void timer1_Tick(object sender, EventArgs e)
{
if (index < imageList1.Images.Count - 1)
{
index = index++;
pictureBox1.BackgroundImage = imageList1.Images[index];
}
else
{
index = 0;
pictureBox1.BackgroundImage = imageList1.Images[index];
}
}

private void toolStripButton3_Click(object sender, EventArgs e)
{
if (timer1.Enabled == false)
{
timer1.Start();
}
else if (timer1.Enabled == true)
{
timer1.Stop();
}
}


点击自动播放后开启了记时器 并且进入了计时器的tick事件.因为我设置断点看见进入计时器了并且开始无限循环了.
但是现在的问题是他只显示一张图片.脑子拧成吗花了,有点乱了. 求解.
...全文
452 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
LGL292350600 2011-12-12
  • 打赏
  • 举报
回复
看看这个,比较简单:
public partial class Form2 : Form
{
int a = 0;

public Form2()
{
InitializeComponent();
}

private void Form2_Load(object sender, EventArgs e)
{

}

private void timer1_Tick(object sender, EventArgs e)
{

this.pictureBox1.Image = Image.FromFile("c:\\" + a + ".png"); a++;

if (a ==8)
{
a = 0;
}
pictureBox1.Left += 5;

}

private void button1_Click(object sender, EventArgs e)
{
timer1.Start();

}

private void button2_Click(object sender, EventArgs e)
{
timer1.Stop();


}
}
}
dancingbit 2009-08-04
  • 打赏
  • 举报
回复
        private void timer1_Tick(object sender, EventArgs e) 
{
if (index < imageList1.Images.Count - 1)
{
index++;
}
else
{
index = 0;
}
pictureBox1.Image = imageList1.Images[index];
}

index应该是在类定义中声明的吧。
ICanUseThisID 2009-08-04
  • 打赏
  • 举报
回复

//参考,代码要写得优美些,呵呵
private int index = 0;

private void timer1_Tick(object sender, EventArgs e)
{
index = (index + 1) % imageList1.Images.Count;
pictureBox1.Image = imageList1.Images[index];
}

private void button1_Click(object sender, EventArgs e)
{
timer1.Enabled = !timer1.Enabled;
}
dong880424 2009-08-04
  • 打赏
  • 举报
回复
貌似不行,还是之停留在第一张图片里..
shenxinliang 2009-08-04
  • 打赏
  • 举报
回复
朋友,我交你一个最简单能解决问题的方法,因为你的变量index永远是0
你只要改一句就可以解决:
index=index++ 变成index++


[Quote=引用楼主 dong880424 的回复:]
窗体里有一个 pictureBox 播放图片用的控件.一个 imageList 存储图片集合的控件. 还有个工具条.是放自动播放那个图片的.
当点击自动播放时.自动播放图片,再次点击停止.代码如下
        在程序开始时设置了 index = 0;中间简略了代码


        private void timer1_Tick(object sender, EventArgs e)
        {
            if (index < imageList1.Images.Count - 1)
            {
                index = index++;
                pictureBox1.BackgroundImage = imageList1.Images[index];
            }
            else
            {
                index = 0;
                pictureBox1.BackgroundImage = imageList1.Images[index];
            }
        }

        private void toolStripButton3_Click(object sender, EventArgs e)
        {
            if (timer1.Enabled == false)
            {
                timer1.Start();
            }
            else if (timer1.Enabled == true)
            {
                timer1.Stop();
            }
        }


点击自动播放后开启了记时器 并且进入了计时器的tick事件.因为我设置断点看见进入计时器了并且开始无限循环了.
但是现在的问题是他只显示一张图片.脑子拧成吗花了,有点乱了. 求解.
[/Quote]
dong880424 2009-08-04
  • 打赏
  • 举报
回复
我知道 但是现在的问题不是不显示图片.是点自动播放后无法自动切换图片..
就算把BackgroundImage改成Image 也是一样的错
dancingbit 2009-08-04
  • 打赏
  • 举报
回复
BackgroundImage继承自Control,用于设置背景。
dancingbit 2009-08-04
  • 打赏
  • 举报
回复
PictureBox有Image属性,用于显示图片。

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧