帮忙修改一个VB小程序

来源:百度知道 编辑:UC知道 时间:2024/05/24 09:11:05
在窗体模块中定义一个Sub 过程,在窗体中画一个图片框,然后单击图片框时,用inputbox输入任一字符,以及需要打印的行数。例如;输入的字符是D,输入的行数是4,那么在图片框第一行输出4个D,第二行输出4个D,但第二行有一个前导空格。第三行输出4个D,但有2个前导空格,第四行输出4D,但有3个前导空格,我的代码如下:Private Sub Picture1_Click()
a = Val(InputBox("line"))
b = InputBox("char")
c = Asc(b)
Call aa(a, c)
End Sub
Private Sub aa(m As Integer, n As Integer)
t = Chr(n)
For i = 1 To a
For j = 1 To m
PictureBox.Print t
Next j
For k = 0 To i - 1
PictureBox.Print " "
Next k
Next i
End Sub。
这里我用了C语言中的算法,不知道为什么,我在TC上可以编出这个程序,在VB上就不行了。

有如下问题:
1.实参a、c没有声明,因些在函数调用中类型不正确;
2.在过程aa()中,变量a未赋值(此处的a不是过程Sub Picture1_Click()中的a。
3.vb中的print和TC中的不一样,VB中的PRINT是一句占一行,VB输出的是记录,C输出的是流。这是二者很大的一个区别。

修改过的程序如下,此程序调试通过。但本程序还有许多问题,如输入合法性检查,程序格式,变量命名,点击输入框“取消”按钮后的处理等。

Private Sub PictureBox_Click()
Dim a As Integer, c As Integer
Dim b As String
a = Val(InputBox("line"))
b = InputBox("char")
c = Asc(b)
Call aa(a, c)
End Sub

Private Sub aa(m As Integer, n As Integer)
Dim t As String, strTemp As String
t = Chr(n)
strTemp = ""
For i = 1 To m
For j = 1 To m
strTemp = strTemp & t
Next j
PictureBox.Print strTemp
strTemp = ""
For k = 0 To i - 1
strTemp = strTemp & " "
Next k
Next i
End Sub