本人最近在编写一个考试程序,主窗口中有二个Panel控件,一个Panel控件放置一个PictureBox控件,图片为一个gif正在加载的图片,设置为隐藏状态。另一个Panel控件用来动态创建单选框和复选框的题目内容。
在窗口的Load事件中将图片的Panel的Visible置为True状态,并启动一个新线程,用来连接数据库后动态创建单选框和复选框,创建结束后再隐藏图片,但是程序运行时,图片是显示出来了,但在创建动态控件时,gif图片一直不动,直到单选框和复选框创建结束后,图片就隐藏了,我自己认为虽然是在新线程中创建控件,但是还是在主线程中,所以导致gif不动,不知是不是这个原因,有哪位遇到过同样的问题啊,能不能提供一下解决方法,在此万分感谢!
在窗口的Load事件中将图片的Panel的Visible置为True状态,并启动一个新线程,用来连接数据库后动态创建单选框和复选框,创建结束后再隐藏图片,但是程序运行时,图片是显示出来了,但在创建动态控件时,gif图片一直不动,直到单选框和复选框创建结束后,图片就隐藏了,我自己认为虽然是在新线程中创建控件,但是还是在主线程中,所以导致gif不动,不知是不是这个原因,有哪位遇到过同样的问题啊,能不能提供一下解决方法,在此万分感谢!
int imgIndex = 0;
var t = new System.Threading.Timer(new System.Threading.TimerCallback((o) =>
{
FrameDimension fd = new FrameDimension(imgs[2].FrameDimensionsList[0]);
int count = imgs[2].GetFrameCount(fd);
imgIndex++;
if (imgIndex == count)
{
imgIndex = 0;
}
imgs[2].SelectActiveFrame(fd, imgIndex);
this.Invoke(new Action(() =>
{
dataGridView1[2, i].Value = imgs[2];
dataGridView1.InvalidateCell(2, i);
})); }), null, 0, 100);