注册 登录
编程论坛 VB6论坛

求教如何让窗体固定在桌面中心,不要移动

bestsunshine 发布于 2018-11-23 17:22, 2588 次点击
只有本站会员才能查看附件,请 登录

窗体初始位置在桌面中心,但是当鼠标在Picture上移动时(Picture有鼠标移动触发的事件),窗体就会自动跑到桌面左上角(如图),但是我想窗体一直固定在桌面中心。
7 回复
#2
风吹过b2018-11-23 17:30
那你只能去排查代码了。
搜索如下代码看看存在不?

me.left
me.top
me.move

窗体名.left
窗体名.top
窗体名.move

甚至
控件名.Container.left
....

排查一下代码。
 
#3
bestsunshine2018-11-23 17:56
回复 2楼 风吹过b
您好,我的代码中不存在您说的上述代码
#4
风吹过b2018-11-23 20:55
那只把这个窗体的代码发出来大家看看。
没这些代码,不用代码移动窗体,我想不出怎么产生的。
#5
ZHRXJR2018-11-25 08:08
将带 Picture 控件的窗体的 StartUpPosition 属性设置为 2,不论什么情况下,都会居中的。
除非在 Picture 鼠标移动触发的事件中有 Me.tup = 0 与 Me.Left = 0 的代码。
如果有,将 Me.tup = 0 与 Me.Left = 0 代码删除即可。

[此贴子已经被作者于2018-11-25 08:20编辑过]

#6
bestsunshine2018-11-25 15:34
回复 5楼 ZHRXJR
Private Sub Pic_Front_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) '''''''''''显示鼠标所在点的坐标值
    Top = (ScalH - ClipH) / 2
    Bottom = (ScalH + ClipH) / 2
    Left = (ScalW - ClipW) / 2
    Right = (ScalW + ClipW) / 2
    Pic_Front.CurrentX = X
    Pic_Front.CurrentY = Y
    MouseX = (X - Left) / ClipW
    MouseY = (Y - Top) / ClipH
    If MouseX >= 0 And MouseX <= 1 And MouseY >= 0 And MouseY <= 1 Then
        SBar1.Panels(1).Text = "坐标(" + Format(MouseX, "#####0.000") + " " + "," + " " + Format(MouseY, "#####0.000") + ")"
    Else
        SBar1.Panels(1).Text = ""
    End If
End Sub
这个Picture鼠标触发事件的代码,没有窗体位置的代码,窗体的Startupposition值已设成2 ,但是运行时,只要鼠标经过Picture,窗体位置就会移动到桌面左上角。
#7
风吹过b2018-11-25 16:49
只能在这些函数里设断点,然后运行看看在哪个函数里跳,然后在哪一句跳。

先所有的响应事件的函数(过程)第一句都下断点。执行,每次都用 F5 继续,看看执行完哪个事件里跳。
然后再针对这个事件里,用F8一步一步的向下,看看在哪句跳。
通过这样的进行排查,光看结果,没代码,没有人能猜出原因,只能靠你自己排查了。

#8
wds12018-11-26 09:24
要查原因,最好打包源程序代码及窗体,否则别人不好判断。

1