帮忙看一下VB.NET中IIF这样写为什么还会报错啊?

aft_st_sd 2005-05-24 11:50:25
If IIf(TextBox1.Text = "", 0, CInt(TextBox1.Text)) > 2 Then
.......
End If

为什么当TextBox1.Text=""的时候还会报错呢?
难道当TextBox1.Text="" =True的时候,还会去执行CInt(TextBox1.Text)) 吗?

如果我写的不对的话,应该怎么写才对呢?

好多年没用过VB了,VB.NET更是没用过,这里应该怎么写啊?
就是当TextBox1.Text=""的时候把它当0来看

谢谢
...全文
225 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjtandqt 2005-05-25
  • 打赏
  • 举报
回复
会去执行的

这样子就不会出错了。
If IIf("" & TextBox1.Text = "", 0, CInt("" & TextBox1.Text)) > 2 Then
.......
End If
wzd24 2005-05-25
  • 打赏
  • 举报
回复
这个问题可以不用IIF嘛!
像这样也可以啊!
If CInt("0" & TextBox1.Text)>2 then
…………
End If
这样如果TextBox1.Text=""的话表达式就会等于0
页TextBox1.Text<>""的话表达式就会等于相应的数值!!
如:TextBox1.Text="" Then "0" & TextBox1.Text="0" CInt("0" & TextBox1.Text)=0
TextBox1.Text="1" Then "0" & TextBox1.Text="01" CInt("0" & TextBox1.Text)=1
hsx306 2005-05-24
  • 打赏
  • 举报
回复

你的TextBox1.Text是否是NULL,NULL与""可不一样,你可试试这样:

If IIf(TextBox1.Text is nothing, 0, CInt(TextBox1.Text)) > 2 Then
.......
End If
tch789 2005-05-24
  • 打赏
  • 举报
回复
up
兔子-顾问 2005-05-24
  • 打赏
  • 举报
回复
以下你的代码:
If IIf(TextBox1.Text = "", 0, CInt(TextBox1.Text)) > 2 Then
.......
End If
iif(bool表达式,返回1,返回2)
计算过程是:
计算:bool表达式
计算:返回1的表达式 0
计算:返回2的表达式 CInt(TextBox1.Text) 当TextBox1.Text = "" 的时候这个表达式就异常了
返回表达式1或者表达式2。
QQRN 2005-05-24
  • 打赏
  • 举报
回复
你判断得很对,改用
IF……THEN

ELSE

END IF
aft_st_sd 2005-05-24
  • 打赏
  • 举报
回复
那可真麻烦
mathsword 2005-05-24
  • 打赏
  • 举报
回复
If IIf(TextBox1.Text = "", 0, CInt(TextBox1.Text)) > 2 Then
.......
End If

这格的执行顺序是先执行CInt(TextBox1.Text),也就是说无论TextBox1.Text是否=“”,都要执行
CInt(TextBox1.Text)

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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