C# Timer控件 事件不起效果

privatevoidtimer1_Tick(objectsender,EventArgse){this.label1.Text=this.Opacity.ToStrin... private void timer1_Tick(object sender, EventArgs e)
{
this.label1.Text = this.Opacity.ToString();
this.Opacity -= 0.01;

if (this.Opacity<=0)
{
this.Opacity += 0.01;

}
我想让窗体从不透明 到透明,再到不透明 这样循环 但是去只能到0完全透明就没继续了...哪里出问题了
展开
 我来答
yp227
2009-09-22 · TA获得超过538个赞
知道小有建树答主
回答量:226
采纳率:100%
帮助的人:94.9万
展开全部
你每次都先减掉0.01,再加上0.01
透明度总是保持在0.01,你当然看不见form了
如果要渐进的从不透明 到透明,再到不透明
那么应该设置标志位,到0的时候开始加0.01
到1的时候再开始减0.01
private bool increase;
private bool decrease;
private void timer1_Tick(object sender, EventArgs e)
{
this.textBox1.Text = this.Opacity.ToString();

if (this.Opacity <= 0)
{
increase = true;
decrease = false;
}

if(this.Opacity >= 1)
{
increase = false;
decrease = true;
}

if(increase)
{
this.Opacity += 0.01;
}
if(decrease)
{
this.Opacity -= 0.01;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
非天DH0a2
2009-09-22 · TA获得超过484个赞
知道答主
回答量:177
采纳率:0%
帮助的人:114万
展开全部
透明度的最小值应为0
所以if (this.Opacity<=0)此判断有问题
应设置一个bool类型变量加以判断

参考如下代码

private bool flag = false;

private void timer1_Tick(object sender, EventArgs e)
{
this.label1.Text = this.Opacity.ToString();
if (!flag)
{
this.Opacity -= 0.01;
if (Opacity == 0)
{
flag = true;
}
}
else
{
this.Opacity += 0.01;
if (Opacity == 1)
{
flag = false;
}
}
}

已经过测试!
不知何故,当Opacity<0.4时。小数点后变为很多位。
可将this.label1.Text = this.Opacity.ToString();
改为this.label1.Text = this.Opacity.ToString("F2");
即可解决
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangwang3ok
2009-09-22 · TA获得超过118个赞
知道小有建树答主
回答量:186
采纳率:0%
帮助的人:195万
展开全部
看代码可知
当Opacity==0 的时候,Opacity 被赋值为0.01,紧接着在下一次程序执行中,Opacity 又变成0.所以看到完全透明。
这样修改
private void timer1_Tick(object sender, EventArgs e)
{
this.label1.Text = this.Opacity.ToString();
this.Opacity -= 0.01;

if (this.Opacity<=0)
{
Opacity=1;
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6eed2f8
2009-09-22 · TA获得超过5082个赞
知道大有可为答主
回答量:3423
采纳率:0%
帮助的人:3796万
展开全部
逻辑有问题,缺少一个判断增减的标志
可以使用label1来作为这个标志
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
biscuit1999
2009-09-22
知道答主
回答量:47
采纳率:0%
帮助的人:16.3万
展开全部
算法不对,要加Flag
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式