有以下一个问题,从1到n枚举,举例如下:当textbox1输入5时,即n=5,则textbox2输出结果并分行显示
本人很菜,我的代码如下
dim k as integer
for k = 1 to textbox1.text
textbox2.text= textbox2 & i & vbcrlf
不过发现上述代码在textbox2中输出结果时,当n>1000左右时,就明显感觉textbox2输出结果的时间很慢,并且容易程序假死,
请问各位大侠,有没有其他方法比上述代码稳定而且更快的吗?谢谢!
本人很菜,我的代码如下
dim k as integer
for k = 1 to textbox1.text
textbox2.text= textbox2 & i & vbcrlf
不过发现上述代码在textbox2中输出结果时,当n>1000左右时,就明显感觉textbox2输出结果的时间很慢,并且容易程序假死,
请问各位大侠,有没有其他方法比上述代码稳定而且更快的吗?谢谢!
"有以下一个问题,从1到n枚举,举例如下:当textbox1输入5时,即n=5,则textbox2输出结果并分行显示
本人很菜,我的代码如下
dim k as integer
for k = 1 to textbox1.text
textbox2.text= textbox2 & i & vbcrlf
不过发现上述代码在textbox2中输出结果时,当n> 1000左右时,就明显感觉textbox2输出结果的时间很慢,并且容易程序假死,
请问各位大侠,有没有其他方法比上述代码稳定而且更快的吗?谢谢!"更改如下:
当textbox1输入5时,即n=5,则textbox2输出结果为
1
2
3
4
5
当textbox1输入10时,即n=10,则textbox2输出结果为
1
2
3
4
5
6
7
8
9
10
以此类推本人很菜,我的代码如下
dim k as integer
for k = 1 to textbox1.text
textbox2.text= textbox2 & i & vbcrlf
不过发现上述代码在textbox2中输出结果时,当n> 1000左右时,就明显感觉textbox2输出结果的时间很慢,并且容易程序假死,
请问各位大侠,有没有其他方法比上述代码稳定而且更快的吗?谢谢!
改为dim k as long ,因为数字比较大的话会出错,integer 型越界了。
j=val(text1.text)
for k = 1 to j'数大的话,取text比取变量慢多
strA=strA & i & vbcrlf 最后text1.text=strA
给你个思路,用数组,然后join给text2赋值
代码简单,不写了
for k = 1 to textbox1.text
textbox2.text= textbox2 & i & vbcrlf改成:
dim k as integer
dim S as string
for k = 1 to val(textbox1.text )
S= S & i & vbcrlf
...
next
text2.text=s
就可以了。
你前面的代码有几个明显的不当之处:
k = 1 to textbox1.text
这算什么写法?TEXTBOX1.TEXT明显是个字符串变量,或许VB会帮你自动转换一下类型,但你就能保证别人再TEXT1里面输入的时候就一定是个数字?textbox2 & i
这也有问题,虽然VB控件有默认属性,它会在不指定控件属性的时候按照默认属性来处理,但是这显然是非常不严谨的。最后,也就是你的程序出问题的原因,是在于循环累加的速度很快的,TEXTBOX的显示刷新是无法更上这个速度的,并且即使可以跟上也没有一点意义,因为你也不可能看清楚,所以你的写法只是徒然得增加了程序的负担。因此我这里帮你改进一下,使用个字符串变量来存放中间结果,只在最后把结果显示再TEXT2里面就可以了。速度会提高很多。