2 回答
TA贡献1811条经验 获得超6个赞
你的问题有两个
1、
Command1_Click()和Command1_Click(index As Integer)是同一个事件,VB是事件型,要放弃过去代码驱动的思维。你可以将这两部分代码合并,并且辅以条件或选择性分支语句。
2、你在前五行的代码中犯了一个错误
Private Sub Command1_Click()
Dim num1, num2 As Single 'num1,num2分别代表输入的第一个数和第二个数
Dim strnum1, strnum2 As String 'strnum1,strnum2分别代表输入的第一个数和第二个数的字符串形式
Dim firstnum As Boolean '判断输入是否是数字开头
End Sub
你在这个事件中只是仅仅声明了几个变量,没有其他任何语句,他们在本段“End Sub”语句执行后就全部消亡了,因此没有意义。我猜测你的本意是申明一些局部变量,因此这里你只要将第一行“Private Sub Command1_Click()”和第五行“End Sub”删除就OK了。
TA贡献1872条经验 获得超3个赞
程序中出现了两个 Private Sub Command1_Click
也就是说出现了两个同名称的子过程,这是不允许的,当点击按钮后,你让VB究竟执行哪个子过程啊?就好比有人说“我爸是李刚”后,两个人同时站起来说“我就是李刚”,这让VB情何以堪啊,呵呵。
另外,你这个Command1究竟是单个按钮,还是控件数组啊?看糊涂了
还有
Dim num1, num2 As Single
这样的变量定义方法也是错误的,要改为
Dim num1 As Single, num2 As Single
Dim strnum1 As String, strnum2 As String
下面是完整的修改结果:
Dim num1 As Single, num2 As Single '此三行定义全局变量
Dim strnum1 As String, strnum2 As String
Dim firstnum As Boolean
Private Sub Form_Load()
num1 = 0
num2 = 0 '令num1和num2为0
strnum1 = ""
strnum2 = "" '令strnum1和strnum2为空字符串
firstnum = True '确定为数字开头
End Sub
Private Sub Command1_Click(index As Integer)
Select Case index '用index作为判断分支的条件
Case 0 To 9 '如果index是0到9
If firstnum Then '输入为第一个数字的话
strnum1 = Str(index) '实型转字符型
firstnum = False '初赋值标志为假
Else '输入不是第一个数字的话
strnum1 = strnum1 + Str(index) '将输入的字符添加到原有字符串上
End If '结束if块
Label1.Caption = strnum1 '显示 '将字符串结果显示到标签上《还有其他语句,等待插入》
End Select
End Sub
- 2 回答
- 0 关注
- 473 浏览
添加回答
举报