求助VB 两个十六进制之间的加减

来源:百度知道 编辑:UC知道 时间:2024/07/01 08:06:14
在两个文本控件中,我想实再两个十六进制之间的加减
如:31EA315 + 45EA0123

我是这样写法的:
Private Sub Text1_Change()
Hex(Text3.Text) = Hex(Text1.Text) + Hex(Text2.Text)
End Sub

提示类型不匹配,想请问应该怎么写法才是正确的呢.请大家帮助我
回zdingyun:
是我表达的不清楚吧,你再看看
我不用命令按钮,直接在三个文本框操作
第一个文本框我绑定的下拉组合框,所以第一个文本框是字符型的,这个十六进制是固件的,不能手动输入:31EA315
第二个文本框是手动输入,如:45EA0123
第三个文本框输出结果,我需要在这个文本框显示十六进制的,你的是显示十进制的
31EA315 + 45EA0123 = 4908A438

上面的问题我解决啦,谢谢你继续跟进,非常感谢
但测试了一下,如果第一个框有A-E的.A-E后面的就不参加运算了
测试:
第一个框:440A0000
第二个框输入:1
第三个框结果却是:441

而不是:440A31E0

如:44020000+1=44020001
440A0000+1=441

可以加QQ吗?我的是30217149.谢谢

Private Sub Command1_Click()
Text3 = Hex(Val("&H" & Text1) + Val("&H" & Text2)) '显示16进制字符形式
Print Val("&H" & Text1) + Val("&H" & Text2) '显示10进制值
End Sub

Private Sub Form_Load()
Text1 = "31EA315"
Text2 = "45EA0123"
End Sub
补充:代码在VB6中调试通过。请问你VB版本?
前代码Text3中显示的就是16进制(字符形式)
MSDN的解释
Hex 函数
返回代表十六进制数值的 String。
按你叙述的修改代码:
Private Sub Form_Load()
Text1 = ""
Text2 = ""
End Sub

Private Sub List1_Click()
Text1 = List1
End Sub

Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Text3 = Hex(Val("&H" & Text1) + Val("&H" & Text2)) '显示16进制字符形式
Print Val("&H" & Text1) + Val("&H" & Text2) '显示10进制值
End If
End Sub
但测试了一下,如果第一个框有A-E的.A-E后面的就不参加运算了
是否你的VB有问题或你语句有错