VB里窗体LEFT TOP 属性的疑问,搞的我焦头烂额。

蛋蛋の忧伤 2011-11-27 10:00:35
我一直搞VB.NET的程序,最近工作需要就使用VB6开发一个小东西

我新建一个EXE项目里面有一个FORM1窗体和一个form2窗体 ,当我点击form1里的一个按钮的时候让form2显示在按钮的地方。窗体的确是移动了但是移动的地方却不是我点击按钮的地方!
真是郁闷了。。。。奥我也设置了2个窗体的scaleMode=3 设置了为像素

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long '声明api函数
Private Type POINTAPI '声明数据类型
mouse_x As Long
mouse_y As Long
End Type

Private Sub Command1_Click()
GetCursorPos z '获取坐标
Form2.Left = z.mouse_x
Form2.top = z.mouse_y
Form2.show
End Sub

请各位帮助啊。。。。。
苍天啊。。。。。。


...全文
310 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
蛋蛋の忧伤 2011-12-24
  • 打赏
  • 举报
回复
已经放弃VB,转到VB.NET
chinaboyzyq 2011-11-28
  • 打赏
  • 举报
回复

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long '声明api函数
Private Type POINTAPI '声明数据类型
mouse_x As Long
mouse_y As Long
End Type

Private Sub Command1_Click()
Dim z As POINTAPI
GetCursorPos z '获取坐标
Form2.Left = z.mouse_x * 15
Form2.Top = z.mouse_y * 15
Form2.Show
End Sub

Private Sub Form_Load()
Me.ScaleMode = 1
End Sub


worldy 2011-11-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hhay7758 的回复:]
好像差点啊,我想显示在按钮的右下角呢?请高手
[/Quote]

1L是给你用法的思路,具体位置,你自己调整一下啊
zfl2k 2011-11-28
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Form2.Left = form1.left+command1.left+间距
Form2.top = form1.top+command1.top+comamnd1.height+间距
Form2.show
End Sub
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hhay7758 的回复:]
好像差点啊,我想显示在按钮的右下角呢?请高手
[/Quote]
Private Sub Command1_Click()
Dim H As Single, W As Single, B As Single, CapH As Single
'因为 VB 总是用缇为单位表示窗体的 Left, Top, Width, Height 属性
'所以先将窗口工作区(内部宽度和高度)的单位转变为缇。这样,保证不论 ScaleMode 如何计算结果都是正确的。
W = Me.ScaleX(Me.ScaleWidth, Me.ScaleMode, vbTwips)
H = Me.ScaleY(Me.ScaleHeight, Me.ScaleMode, vbTwips)

B = (Me.Width - W) / 2 '左右边框宽度:缇
CapH = Me.Height - H - B '窗口标题栏高度 = 总高度 - 工作区高度 - 下边框高度
Form2.Show
Form2.Move Left + Command1.Left + Command1.Width, Top + Command1.Top + Command1.Height + CapH
End Sub
  • 打赏
  • 举报
回复
  Form2.Left = z.mouse_x*15
Form2.top = z.mouse_y*15
Form2.show


暂时先转为缇应付着……
蛋蛋の忧伤 2011-11-27
  • 打赏
  • 举报
回复
好像差点啊,我想显示在按钮的右下角呢?请高手
worldy 2011-11-27
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Form2.Left = left+command1.left
Form2.top = top+command1.top+comamnd1.height
Form2.show
End Sub

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧