Flyingdancing 发表于 2012-8-15 15:26:31

【窗体】在屏幕上定位,显隐位置固定/记忆屏幕位置

本帖最后由 Flyingdancing 于 2012-8-15 15:27 编辑


如图,如果窗体被拖动到此处,后点按钮隐藏,再次显示时,会自动定位到屏幕中心,会影响后续操作的视线,需要手动拖动到边缘
如果能够在显示的时候自动定位到先前的记忆位置的话,就方便多了。请问如何实现


yanyanjun999 发表于 2012-8-15 19:51:36

在点按钮userform1.hide之前,记录下userform1.left和userform1.top。然后等userform1.show时再定义userform1.left和userform1.top

Flyingdancing 发表于 2012-8-15 20:03:57

yanyanjun999 发表于 2012-8-15 19:51 static/image/common/back.gif
在点按钮userform1.hide之前,记录下userform1.left和userform1.top。然后等userform1.show时再定义userfor ...

谢~
各种谢~
非常感谢~

Flyingdancing 发表于 2012-8-15 20:05:31

yanyanjun999 发表于 2012-8-15 19:51 static/image/common/back.gif
在点按钮userform1.hide之前,记录下userform1.left和userform1.top。然后等userform1.show时再定义userfor ...

哦,对了,知道有什么控件是自带右上角最大化,最小化按钮的吗?
CAD的没自带。按钮控件又放不上去

Flyingdancing 发表于 2012-8-16 09:23:42

本帖最后由 Flyingdancing 于 2012-8-16 09:42 编辑

yanyanjun999 发表于 2012-8-15 19:51 static/image/common/back.gif
在点按钮userform1.hide之前,记录下userform1.left和userform1.top。然后等userform1.show时再定义userfor ...
对了,窗体作为参数传递,建立统一的记忆sub

Sub memo(ByVal form As UserForm1)
Left = form.Left
top = form.top
End Sub调用:memo(userform1)
但是在调用memo时显示的却是类型不匹配……

Flyingdancing 发表于 2012-8-17 14:03:19

本帖最后由 Flyingdancing 于 2012-8-17 14:05 编辑

Public lft As Double
Public tp As Double
Sub memo()
Dim x As UserForm1
Set x = UserForm1
lft = x.Left
tp = x.top
Debug.Print lft, tp; x.Left; x.top
End Sub
Sub disp()
Dim x As UserForm1
Set x = UserForm1
x.Left = lft
x.top = tp
Debug.Print lft, tp; x.Left; x.top
End Sub
按钮内容:Private Sub CommandButton1_Click()
模块1.memo
UserForm1.Hide
UserForm1.Show 0
模块1.disp
End Sub这时候,窗体位置是正确的。但是!!!屏幕会闪!!从中心位置移动到设定位置的闪屏!!Private Sub CommandButton1_Click()
模块1.memo
UserForm1.Hide
模块1.disp
UserForm1.Show 0
End Sub这时候,不闪了!但是位置不变……!!为什么提前设定Left和Top值无效……,难道不保存这俩值么……
CAD你是要闹哪样啊……

Flyingdancing 发表于 2012-8-18 10:03:53

好吧,我知道哪里出问题了……
电脑太撇了……我了个嚓
页: [1]
查看完整版本: 【窗体】在屏幕上定位,显隐位置固定/记忆屏幕位置