代码太怪:竟然无法实现,窗体居中,求答案Private Sub Form_Resize()
    
    If WindowState = 0 Then
        Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
    End IfEnd Sub
以上代码,理论上应该可以实现,当改会窗体大小时,自动居中,但是大家试一下就知道了,不行,
用鼠标拖动边框时,短时间内,窗体是居中的,但是只要松开鼠标,窗口马上回到刚开始的位置,根本不是屏幕中央。
这是为什么呢?

解决方案 »

  1.   

    在设计时把窗体的Moveable属性设置为false
      

  2.   

    难道与环境有关,怪了。我这里确实不行, 发个图吧。
    不知能不能发 gjf.
      

  3.   


    监控一下,看这4个数
    Screen.Width  Me.Width  Screen.Height   Me.Height分别是多少Private Sub Form_Resize()
        
        If WindowState = 0 Then
            Debug.Print Screen.Width; Me.Width; Screen.Height; Me.Height;
            Debug.Print
            Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
        End IfEnd Sub
      

  4.   

    http://topic.csdn.net/u/20100607/19/0de97b83-a6ac-4242-9557-971425dfe3c5.html
    你们看看这个贴子,我先问修改窗体大小后,如何居中,有两位网友说有这个现象,我不信,自已开始也没试出来,后来那位网友告诉我的。注意,先让窗体放到左上角,但是用鼠标改变大小,然后看看是否居中,
    不可能居中的。
      

  5.   

    Debug.Print Screen.Width; Me.Width; Screen.Height; Me.Height; Me.Left; Me.Top 19200  3300  15360  2265  5205  4785  19200  3405  15360  2265  5100  4785  19200  3525  15360  2265  4980  4785  19200  3660  15360  2265  4845  4785  19200  3795  15360  2265  4710  4785  19200  3945  15360  2265  4560  4785  19200  4140  15360  2265  4365  4785  19200  4305  15360  2265  4200  4785  19200  4500  15360  2265  4005  4785  19200  4695  15360  2265  3810  4785  19200  4920  15360  2265  3585  4785  19200  5115  15360  2265  3390  4785  19200  5340  15360  2265  3165  4785  19200  5535  15360  2265  2970  4785  19200  5760  15360  2265  2745  4785  19200  5955  15360  2265  2550  4785  19200  6135  15360  2265  2370  4785  19200  6270  15360  2265  2235  4785  19200  6405  15360  2265  2100  4785  19200  6555  15360  2265  1950  4785  19200  6660  15360  2265  1845  4785  19200  6810  15360  2265  1695  4785  19200  6945  15360  2265  1560  4785  19200  7035  15360  2265  1470  4785  19200  7155  15360  2265  1350  4785  19200  7245  15360  2265  1260  4785  19200  7350  15360  2265  1155  4785  19200  7440  15360  2265  1065  4785  19200  7500  15360  2265  1005  4785  19200  7575  15360  2265  930  4785  19200  7620  15360  2265  885  4785  19200  7665  15360  2265  840  4785  19200  7725  15360  2265  780  4785  19200  7785  15360  2265  720  4785  19200  7875  15360  2265  630  4785  19200  7920  15360  2265  585  4785  19200  7980  15360  2265  525  4785  19200  8025  15360  2265  480  4785  19200  8070  15360  2265  435  4785  19200  8115  15360  2265  390  4785  19200  8145  15360  2265  360  4785  19200  8160  15360  2265  345  4785  19200  8205  15360  2265  300  4785  19200  8235  15360  2265  270  4785  19200  8280  15360  2265  225  4785  19200  8325  15360  2265  180  4785  19200  8355  15360  2265  150  4785  19200  8400  15360  2265  105  4785  19200  8415  15360  2265  90  4785  19200  8430  15360  2265  75  4785  19200  8415  15360  2265  75  4785  19200  8385  15360  2265  75  4785  19200  8340  15360  2265  75  4785  19200  8295  15360  2265  75  4785  19200  8250  15360  2265  75  4785  19200  8160  15360  2265  75  4785  19200  8085  15360  2265  75  4785  19200  7935  15360  2265  75  4785  19200  7800  15360  2265  75  4785  19200  7635  15360  2265  75  4785  19200  7440  15360  2265  75  4785  19200  7260  15360  2265  75  4785  19200  7065  15360  2265  75  4785  19200  6840  15360  2265  75  4785  19200  6600  15360  2265  75  4785  19200  6345  15360  2265  75  4785  19200  6060  15360  2265  75  4785  19200  5835  15360  2265  75  4785  19200  5595  15360  2265  75  4785  19200  5340  15360  2265  75  4785  19200  5145  15360  2265  75  4785  19200  4950  15360  2265  75  4785  19200  4755  15360  2265  75  4785  19200  4560  15360  2265  75  4785  19200  4380  15360  2265  75  4785  19200  4215  15360  2265  75  4785  19200  4050  15360  2265  75  4785  19200  3960  15360  2265  75  4785  19200  3825  15360  2265  75  4785  19200  3705  15360  2265  75  4785  19200  3615  15360  2265  75  4785  19200  3540  15360  2265  75  4785  19200  3465  15360  2265  75  4785  19200  3405  15360  2265  75  4785  19200  3375  15360  2265  75  4785  19200  3315  15360  2265  75  4785  19200  3270  15360  2265  75  4785  19200  3255  15360  2265  75  4785  19200  3210  15360  2265  75  4785  19200  3165  15360  2265  75  4785  19200  3120  15360  2265  75  4785  19200  3045  15360  2265  75  4785  19200  2985  15360  2265  75  4785  19200  2925  15360  2265  75  4785  19200  2880  15360  2265  75  4785  19200  2820  15360  2265  75  4785  19200  2790  15360  2265  75  4785  19200  2775  15360  2265  75  4785  19200  2760  15360  2265  75  4785 
      

  6.   

    应该是这样,当“拖动时显示窗口内容”被选中时,调整窗口大小时,最后松开鼠标左键时,系统会根据刚调整时的位置和相对变化太最后确定窗体位置和大小,且不产生WM_SIZE事件.所以你可考虑在Form_Resize中打开一个Timer,检测鼠标左键是否放开,放开则让窗体居中.当然,这样还不是最好的办法,你最好是处理一下相应的消息:)
    WM_ENTERSIZEMOVE  
    WM_EXITSIZEMOVE 
      

  7.   

    其实也不是做不好。NC_TEST消息就是干这事的。