VB中s=text1.text和text1.text=s为什么起到的作用不同!!!!
dimsasintegers=text1.text这样是正确的然后往后计算。为什么改为text1.text=s程序就出错了呢?请教高人...
dim s as integers=text1.text 这样是正确的然后往后计算。为什么改为text1.text=s 程序就出错了呢?请教高人
展开
3个回答
2013-12-21
展开全部
你 dim s as integer 定义的是整型变量.s=text1.text 如果text1的内容是数值型,那VB会隐式帮你完成了字符串到整型变量的转换, 如果别人在text1里输入的内容不是数值型,比如a,b,c,d...等, 那照常理是没办法逃过运行时错误的. 字符串不能给整型变量赋值. dim s as integertext1.text=s 这样的语句理论上应当不会报错的. 不知道你用的VB是什么版本,我测试的是VB6. 一样的道理,实际上text1.text=s 其中s被VB隐式转换成字符串了, 数值转字符串不存在转换出错.而字符串隐式转数字就不一定能成功了, 如果转换不成功那VB就会报运行时13错误 '类型不匹配'..为了程序的容错能力增加, 建议你还是显式转换类型吧, 字符串到数值型可以用 CInt, 不一定能转换成功,你可以用on error resume next 再捕捉13错误再加以处理.可以有效防止出错...由数值型转换到字符串可以用CStr...看看下边的代码, 正确的写法Private Sub Command1_Click()
Dim s As Integer
On Error Resume Next
s = CInt(Text1.Text)
If Err.Number = 13 Then Err.Clear
MsgBox "非数字不能计算"
Exit Sub
End If
s = s + 1
Text1.Text = CStr(s)
End Sub
Dim s As Integer
On Error Resume Next
s = CInt(Text1.Text)
If Err.Number = 13 Then Err.Clear
MsgBox "非数字不能计算"
Exit Sub
End If
s = s + 1
Text1.Text = CStr(s)
End Sub
2013-12-21
展开全部
这是因为你没理解=号的含义。=叫赋值,通俗的讲,意思是把一个值存入一个变量中。比如:B=A,是把A的值存入B中,而A=B是把B的值存入A中,A原来的值就会被覆盖了s=text1.text 是把文本框中的数据存入S中而text1.text=s是把S的数据存入文本框中显示。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-21
展开全部
s=text1.text的意思是 把text1.text的值赋给stext1.text=s的意思是 把s的值赋给text1.text
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询