在一个窗体的调用中加入:
Private Sub Form_Load()
Me.BorderStyle = 1
End Sub
本来应该窗体变成不能改变大小,结果是毫无反应.了多次都不行.
但如果再加一行:
Me.Caption="%$$%%"
窗体边界马上变成不可改变. 如果把两个句子倒一下,Bordrstyle写在Caption句子后面,也无效。
为什么 ?Timer函数中,例如:
dim s as long 
long = timer
if timer<long+0.5 then
Doevents
......我把0.5秒改成0.6以上,肯定好用,只要是小于0.5,这个句子等于白写。类似的问题我在KLP(一种小学生用的语言)中也遇到过,告别奇怪!难道是windowsXP时间本身有问题?

解决方案 »

  1.   

    BorderStyle 为只读属性,你必须在设计时就设置好,运行时不能改变的。
    Timer函数的最高精度大约可以达到0.016秒。 但一般不能获取这么高的分辨率,因为系统有其它程序在活动。系统把Timer的函数优先级定的比较低,实际应用中,其分辨率大约在0.1秒。建议用别的函数获取时间,如:GetTickCount
      

  2.   

    不要随便讲什么东西什么东西有BUG,这是不负责任的表现。
      

  3.   

    dim s as long ‘此句定义有问题这么改试试:dim s as Single
    s= timer
    Doevents
    if timer<s+0.5 then
    Doevents
    ......
      

  4.   

    dim s as long 
    long = timer
    if timer<long+0.5 then
    Doevents
    ......没看明白什么意思
      

  5.   

    BorderStyle 为只读属性,你必须在设计时就设置好,运行时不能改变的。
    -------------------------------------------
    MSDN上说是BorderStyle是只读,但是楼主的测试结果是对的:单独设置BorderStyle不起作用,后面跟一条设置Caption的语句时,却起作用了。不知道VB在改变窗体的Style时,里面作了什么手脚。
      

  6.   

    timer 函数返回的是single 类型
      

  7.   

    关于BorderStyle属性,我也测试了,现象如楼主所说,可以说是楼主的一重大发现。要想知道VB在改变窗体的Style时,里面作了什么手脚。必须从Object基类的代码开始,累人。
      

  8.   

    BorderStyle 换作api用 SetWindowLong
      

  9.   

    经过测试发现,运行期间,只有在改变Caption属性时,BorderStyle的变化才会起作用。
    看来在VB里,改变Caption属性的时候VB不仅仅只调用了SetWindowText函数,好像还调用了SetWindowLong函数,所以才会导致楼主发现的现象。为什么要这样做,也许只有微软知道。
      

  10.   

    timer 返回一个Single,代表从午夜开始到现在经过的秒数
        所以 我觉得你这段程序该这样写
       dim starttime,endtime,wait
       starttime=timer'设置开始循环时间
       waite=X'X是你想等待的时间
       do while starttime+wait<timer '循环条件
       stataments
       loop
       endtime=timer'纪录下结束循环时间
       ........
      

  11.   

    修改一句
      do while starttime+wait>timer
      

  12.   

    哪个timer好像没有什么问题!楼主所给代码也很怪异
    borderstyle确实如此,可以算是楼主的重大发现,我一直以为borderstyle是只读属性,再程序中根本没法改变它..
      

  13.   

    我的关于使用Timer函数的意义是:在N秒内,停止VB现有的动作(比如画进度条),把任务交还给系统,做VB程序以外的任务.N秒后再回来继续VB设定的工作.比如一个进度条的动画,如果没有上面的timer语句,进度条会变的飞快.但是这个timer在一定的范围内是不准确的,十分奇怪.
      

  14.   

    进度条不该用timer事件去控制吧