c#窗体timer事件触发时连续执行了两次才跳出,closing事件也是 20

privatevoidtimer1_Tick(objectsender,EventArgse){flag=int.Parse(Class1.ContextData["ou... private void timer1_Tick(object sender, EventArgs e)
{
flag = int.Parse(Class1.ContextData["outID"].ToString());
dsoutID = cl.ds(str);
flag1 = int.Parse(dsoutID.Tables["tempTable"].Rows[0]["outId"].ToString());
if (flag < flag1)
{Class1.ContextData["outID"] = flag1;
pictureBox1.Visible = true;
linkLabel1.Visible = true;
}
}
因为连续执行了两次,所以flag一直等于flag1
展开
 我来答
chtls3
2015-01-19 · 超过24用户采纳过TA的回答
知道答主
回答量:72
采纳率:100%
帮助的人:31.1万
展开全部
private void timer1_Tick(object sender, EventArgs e)
{

timer1.enabled=false; //触发timer1后立即设置属性enabled=false就不会再次执行了,但不影响当次timer1的执行内容

flag = int.Parse(Class1.ContextData["outID"].ToString());
dsoutID = cl.ds(str);
flag1 = int.Parse(dsoutID.Tables["tempTable"].Rows[0]["outId"].ToString());
if (flag < flag1)
{Class1.ContextData["outID"] = flag1;
pictureBox1.Visible = true;
linkLabel1.Visible = true;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
llf_0722
2015-01-08 · 超过14用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:21.2万
展开全部
1. 可能您的timer事件 注册了2次
2. 可能您的timer拥有两个实例 也就是说您 new 了两次 timer
追问
直接用窗体自带的timer控件  并没有创建实例,所以不存在new了两次  而且timer只有一个事件,所以也不存在注册了两次
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huyu0123
推荐于2018-04-24
知道答主
回答量:14
采纳率:100%
帮助的人:4.2万
展开全部
1. timer事件 注册了2次
2. timer拥有两个实例 也就是说您 new 了两次 timer
再或者事件去掉,重新拉出一个时间控件,重新定义事件试试 
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bluemind_2004
2015-01-12 · TA获得超过964个赞
知道小有建树答主
回答量:539
采纳率:93%
帮助的人:299万
展开全部
你可以查一下事件触发的函数的个数。
比如 BTN_CLICK += function .....
还可以继续 btn_clik += function 。。。。

这样可能执行两次。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
票风三孚
2015-01-09
知道答主
回答量:8
采纳率:0%
帮助的人:7.1万
展开全部
你的timer时间间隔是否有设置,有可能是时间间隔太短照成的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式