none
c# button颜色问题请教 RRS feed

  • 问题

  • Dear All:

            刚刚起步学习c#~~~~做小练习的时候遇到的问题;

            想做一个彩灯,就以一个button,定时改变自己的颜色

            但是发现总是只显示最后的颜色,如

                    private void button1_Click(object sender, RoutedEventArgs e)
            {
                button2.Background = System.Windows.Media.Brushes.Black;
                for (int i = 0; i < 60000;i++ ) ;
                button2.Background = System.Windows.Media.Brushes.Green;
                for (int i = 0; i < 60000; i++) ;
            }

           就只显示绿色,而想要的效果是先黑色,过一点时间后变绿。。。。。

           单步调试界面会无响应

           请教各位老鸟!!

           多谢

    BestRegard!

    2011年6月15日 0:24

答案

  • 要等界面重画的话,用定时器隔几秒变一次颜色吧

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    2011年6月15日 0:35
    版主

全部回复

  • 要等界面重画的话,用定时器隔几秒变一次颜色吧

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    2011年6月15日 0:35
    版主
  • hi  jiang

        非常感谢您的建议,非常的好用;

        有点疑惑想请教,按照原来的写法,为什么会不行呢?

     BestRegard!

    2011年6月15日 3:39
  • hi  jiang

        非常感谢您的建议,非常的好用;

        有点疑惑想请教,按照原来的写法,为什么会不行呢?

     Best Regard!

    按照原来的代码,程序执行顺序是从上至下,先执行第一个for 循环,执行完后,执行改变颜色的代码块,即button2.Background = System.Windows.Media.Brushes.Green; 然后执行第二个for循环。当然程序执行的最后结果也是 for循环之后的结果。这之间并没有体现彩灯的效果。

     

     


    Best Regards,
    Rocky Yue[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年6月15日 8:39
    版主