关于控件Hscroll的VB题……高手请进!

来源:百度知道 编辑:UC知道 时间:2024/05/10 05:33:34
题目是这样子的...

控件HScroll1的属性设置如下:
HScroll1.Min=1, HScroll1.Max=9, HScroll1.Value=1
HScroll1.Smallchange=2, HScroll1.Largechange=4
下面程序运行时,4次单击滚动条右端箭头,写出各次单击时Text1上的显示结果。
Dim y As Single
Private Function f1(x2 As Integer) As Single
Static x1 As Integer
f1 = 0
For i% = x1 To x2
f1 = f1 + i%
Next i%
x1 = i%
End Function
Private Sub HScroll1_Change()
y = y + f1(HScroll1.Value)
Text1.Text = y
End Sub

答案是
6
15
28
45

请问为什么会是这样子?
能解释一下吗?

最近要考试了,提问太多,分太少了。。请大家原谅。。

点击一次箭头由于HScroll1.Smallchange=2 所以value值+2
Dim y As Single 定义y在这里相当于是全局变量
Static x1 As Integer 定义静态变量x1 会保存上一次结果 即i
第一次单击 HScroll1.Value的值为1+2=3,调用函数f1=1+2+3=6,y=6 i=4
第二次单击 HScroll1.Value的值为3+2=5,调用函数f1=4+5,y=6+9=15 i=6
第三次单击 HScroll1.Value的值为52=7,调用函数f1=6+7,y=15+13=28 i=8
第四次单击 HScroll1.Value的值为7+2=9,调用函数f1=8+9,y=28+17=45 i=10