WinForms中的计时器我正在使用计时器来创建启动画面。我想要做的是淡入和淡出表格。我首先在表单的构造函数中创建不透明度为0的表单,然后在表单加载方法中触发计时器。现在在我的Timer_Tick方法中,我不断增加不透明度,比如0.2。我认为一旦计时器达到其间隔的一半,我就会开始降低不透明度,但我不能那样做。我不知道计时器是如何工作的,但我想实现这样的目标:if(Whatever_Timer_Value_Is<=Interval/2)//Can'tachievethis:sthis.Opacity+=2;否则this.Opacity-=2;那么..有没有办法随时获取定时器的值?或者还有其他方法吗?请保持简单。我只是一个业余爱好者。X(试试Servy在这篇文章中建议的这个方法。我修改了FormFade-Out来隐藏表单。publicForm1(){InitializeComponent();这个.不透明度=0;}privatevoidForm1_Load(objectsender,EventArgse){ShowMe();}privatevoidbutton1_Click(objectsender,EventArgse){HideMe();ShowMe(){intduration=1000;//以毫秒为单位intsteps=100;定时器timer=newTimer();timer.Interval=持续时间/步数;intcurrentStep=0;timer.Tick+=(arg1,arg2)=>{不透明度=((double)currentStep)/steps;当前步骤++;如果(currentStep>=steps){timer.Stop();定时器.Dispose();}};定时器。开始();}privatevoidHideMe(){intduration=1000;//以毫秒为单位intsteps=100;定时器timer=newTimer();timer.Interval=持续时间/步数;intcurrentStep=100;timer.Tick+=(arg1,arg2)=>{不透明度=((double)currentStep)/steps;当前步骤--;if(currentStep记住计时器何时启动。这样你总是知道已经过了多少时间。你可以使用Environment.TickCount。这是一个单调时钟。增量计算(如Opacity+=0.2;)应该在计时器中避免,因为它是不能保证收到所有报价或在正确的时间点收到它们。您最好计算已经过去了多少时间,并根据该值计算出正确的不透明度。尝试为飞溅创建第二个表单:Formsplash=newForm();publicForm1(){InitializeComponent();这个.Visible=false;splash.Opacity=0;飞溅.Show();_timerShow();_timerHide();这个.Visible=true;}privateasyncvoid_timerShow(){while(splash.opacity!=1){awaitTask.Delay(50);splash.opacity+=.01;}}privateasyncvoid_timerHide(){while(splash.opacity!=0){awaitTask.Delay(50);splash.opacity-=.01;}}看看这个,c#中的splashscreen示例:http://www.codeproject.com/Articles/5454/A-Pretty-Good-Splash-Screen-in-C以上就是C#学习的全部内容教程:WinForms中的计时器。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注---本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
