你必须把主线程交给人家窗体底层去继续执行,界面才能真正去渲染。你的 timer_tick 方法不执行完,界面是不会渲染的。 定时器本身是50毫秒执行一次,那么每一次执行时将不透明度增加10%,直到 >= 1 为止,总共需要执行10次 timer_tick 方法,最后一次才会使得 timer1.Enabled 设置为 false。 而你的程序的逻辑是仅仅总共执行一次 timer_tick,只要执行 timer_tick 就赋值 false。这个流程是错误的。
private void time1_Tick(object sender, EventArgs e) { opacity_var +=1; this.opacity =((double) opacity_var)/10; invalidate(); if(opacity==10) { timer1.Enabled=false;} }
我的代码里有while循环,如果是只执行了一次的话,
中间一段已经说了。代码你应该自己设计,而别人只能告诉你应该实现什么流程。流程都说得这么具体了,自己还不设计代码吗?
110,538
社区成员
642,577
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧