问个问题,急急急急急

awnuytnh 2009-11-17 03:42:45
一个if语句,要判断里面的
 if (*******&&int.Parse(label17.Text) > 1)
{
label15.Enabled = true;
}


*的地方就是我想判断的地方,我想判断label里面的值变化的话应该怎么样判断,比如像别的控件的用change变化等,很急,帮帮忙...
...全文
97 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
sharpe 2009-11-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 awnuytnh 的回复:]
C# codeprivatevoid timer1_Tick(object sender, EventArgs e)
{

TaskParam taskParam=new TaskParam();
taskParam.SetFunctionID("GABJ000105");
ParamDeal PD=new ParamDeal();
PD.iDeal=0;
taskParam.PutValue("PARAM_GET_SMS_COUNT", PD);int iRet= Common.netWork.processSendTask(this.Handle, taskParam);




}
C# codecase DataLayer.MSG_106:string f;if (NetWork.TS_SUCCESS== intRet)
{int iCount=0;try
{
iCount= m.LParam.ToInt32();
}catch (Exception e)
{
iCount=0;
}

label17.Text= iCount.ToString();


}if (int.Parse(label17.Text)>1)
{
label15.Enabled=true;
}break;


把代码给大家看一下,上面的是timer,每2秒发一个报文
下面的是处理消息的代码,服务器给我返回的是106的报文,然后我处理消息,服务器不断的给我回iCount的值,然后我将这个值显示在label17上,当label17里的值大于1时我就要把label15这个控件给Enabled,而且当两次timer的值没变化时,比如第一次是5,第二次还是5的话那就不执行这动作,如果第一次是5,第二次是7了的话,那就执行把label15给Enalbed这个动作

[/Quote]

其实你的label15.Enabled=true;label17.Text赋值时执行。iCount值和原来的值一样也没必须赋值


C# codeprivatevoid timer1_Tick(object sender, EventArgs e)
{

TaskParam taskParam=new TaskParam();
taskParam.SetFunctionID("GABJ000105");
ParamDeal PD=new ParamDeal();
PD.iDeal=0;
taskParam.PutValue("PARAM_GET_SMS_COUNT", PD);int iRet= Common.netWork.processSendTask(this.Handle, taskParam);




}
C# codecase DataLayer.MSG_106:string f;if (NetWork.TS_SUCCESS== intRet)
{int iCount=0;try
{
iCount= m.LParam.ToInt32();
}catch (Exception e)
{
iCount=0;
}
if(label17.Text!=iCount.ToString())
{
label17.Text=iCount.ToString();
if(iCount>1)
{
label15.Enabled=true;
}

}
}
break;

awnuytnh 2009-11-17
  • 打赏
  • 举报
回复
10楼的谢谢了,解决了
xxyxxyxxyxxyxxyou 2009-11-17
  • 打赏
  • 举报
回复
Label没有onchange事件么? 用Timer...
不知道LZ的最终要求是什么
liherun 2009-11-17
  • 打赏
  • 举报
回复

case DataLayer.MSG_106:
string f;
if (NetWork.TS_SUCCESS == intRet)
{
int iCount = 0;
try
{
iCount = m.LParam.ToInt32();
}
catch (Exception e)
{
iCount = 0;
}
flag=label17.Text;
label17.Text = iCount.ToString();


}
if (flag!=label17.Text&&int.Parse(label17.Text) > 1)
{
label15.Enabled = true;
}
break;

string flag;定义成全局变量
yuzhlhua 2009-11-17
  • 打赏
  • 举报
回复
定义全局变量 string strTmp = "";


在time事件里
if (strTmp == "")
{
strTmp = label17.Text;
}

if (strTmp == label17.Text)
{
//没变
}
else
{
//变了
strTmp = label17.Text
}
awnuytnh 2009-11-17
  • 打赏
  • 举报
回复
   
private void timer1_Tick(object sender, EventArgs e)
{

TaskParam taskParam = new TaskParam();
taskParam.SetFunctionID("GABJ000105");
ParamDeal PD = new ParamDeal();
PD.iDeal = 0;
taskParam.PutValue("PARAM_GET_SMS_COUNT", PD);
int iRet = Common.netWork.processSendTask(this.Handle, taskParam);




}

 case DataLayer.MSG_106:
string f;
if (NetWork.TS_SUCCESS == intRet)
{
int iCount = 0;
try
{
iCount = m.LParam.ToInt32();
}
catch (Exception e)
{
iCount = 0;
}

label17.Text = iCount.ToString();


}
if (int.Parse(label17.Text) > 1)
{
label15.Enabled = true;
}
break;



把代码给大家看一下,上面的是timer,每2秒发一个报文
下面的是处理消息的代码,服务器给我返回的是106的报文,然后我处理消息,服务器不断的给我回iCount的值,然后我将这个值显示在label17上,当label17里的值大于1时我就要把label15这个控件给Enabled,而且当两次timer的值没变化时,比如第一次是5,第二次还是5的话那就不执行这动作,如果第一次是5,第二次是7了的话,那就执行把label15给Enalbed这个动作
liaoyukun111 2009-11-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 surlew 的回复:]
你应该设一个变量用来保存最开始的label的值,然后判断里面用label现在的值与变量比较,不同就表示变了
[/Quote]
方法不错
ljhcy99 2009-11-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 awnuytnh 的回复:]
我这个语句是在一个timer里判断的,每2秒判断一次,这样我应该怎么做?
[/Quote]

那就在tick事件里给 全局的成员变量赋值
liherun 2009-11-17
  • 打赏
  • 举报
回复
一样啊,你在什么时候给label15赋值的?
ljhcy99 2009-11-17
  • 打赏
  • 举报
回复
想判断变化 你得用一个成员变量记住lable的Text.

然后 就是string的比较啦。
用equals.
假设 成员变量为 aa
if (aa.Equals(lable1.Test) && (int.Parse(label17.Text) > 1))
{
label15.Enabled = true;
}
awnuytnh 2009-11-17
  • 打赏
  • 举报
回复
我这个语句是在一个timer里判断的,每2秒判断一次,这样我应该怎么做?
liherun 2009-11-17
  • 打赏
  • 举报
回复

string label15neirong;

你给label15重新赋值前

abel15neirong=label15.Text;
label15.Text=//你要赋的值


if (label15.Text==abel15neirong&&int.Parse(label17.Text) > 1)
{
label15.Enabled = true;
}
surlew 2009-11-17
  • 打赏
  • 举报
回复
你应该设一个变量用来保存最开始的label的值,然后判断里面用label现在的值与变量比较,不同就表示变了

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧