首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

为什么不能间隔性的显示画图?解决办法

2012-03-19 
为什么不能间隔性的显示画图?我想做的是 画一次图,显示后,间隔一秒再画一次显示。但是,我下面的代码 总是白

为什么不能间隔性的显示画图?
我想做的是 画一次图,显示后,间隔一秒 再画一次显示。

但是,我下面的代码 总是白色的背景,等到了十秒之后才显示图片。

我加了个messagebox这时候 跳一次框,然后就能看见窗体中显示的图片。

为什么会这样呢?、谢谢大家!

C# code
 private void button1_Click(object sender, RoutedEventArgs e)        {            for (int i = 0; i < 10; i++)            {                if (i % 2 == 0)                {                    Ellipse el = new Ellipse();                    el.Height = 30;                    el.Width = 60;                    el.Fill = Brushes.Red;                    el.Stroke = Brushes.Black;                    canvas1.Children.Add(el);                }                 else                {                    //System.Threading.Thread.Sleep(1000);                    Ellipse el = new Ellipse();                    el.Height = 30;                    el.Width = 60;                    el.Fill = Brushes.Yellow;                    el.Stroke = Brushes.Green;                    canvas1.Children.Add(el);                }                 System.Threading.Thread.Sleep(1000);                // MessageBox.Show("aa");            }        }


[解决办法]
在一个方法中,程序默认的方式是 代码全部运行完毕之后,才在空间显示结果
比如:在一个方法中写入:
label.txt="12";
//todo
label.txt="34"; 程序运行过程中,不会显示12 在显示34 而是直接就显示34
所以你只能看到最后一张图片

而当你加入messagebox后,当出现这代码,程序就会将结果显示在用户控件上,所以你能看到每张图片

解决办法就是:强制刷新事件 
Application.DoEvents();//强制让系统执行所有事件
[解决办法]
探讨
在一个方法中,程序默认的方式是 代码全部运行完毕之后,才在空间显示结果
比如:在一个方法中写入:
label.txt="12";
//todo
label.txt="34"; 程序运行过程中,不会显示12 在显示34 而是直接就显示34
所以你只能看到最后一张图片

而当你加入messagebox后,当出现这代码,程序就会将结果显示在用户控件上,所以你能看到每张图片
……

热点排行