如何使子窗体始终显示在主窗体的正中间

kindy0301 2008-01-09 02:49:52
我想让一个弹出的子窗体始终显示在主窗体的正中间,不管主窗体在哪个位置!
请高手给个解例!
谢谢
...全文
140 点赞 收藏 9
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Abyss-Xu 2008-01-09
设置StartUpPosition=1
不管主窗体移到那里子窗体都在屏幕的中间
回复
jieweibin 2008-01-09
MDI下的子窗体的StartUpPosition默认只能是0,不能改的,除非它不属于MDI
回复
Abyss-Xu 2008-01-09

Private Sub Command1_Click()

Form2.Top = Form1.Top + (Form1.Height - Form2.Height) / 2
Form2.Left = Form1.Left + (Form1.Width - Form2.Width) / 2
Form2.Show

End Sub
回复
kindy0301 2008-01-09
郁闷哦!
原来设置属性StartUpPosition=1就能实现了!
谢谢大家了!
回复
xieyudada 2008-01-09
设这个属性,子窗体不行,普通窗体可以。听我的,没错。呵呵……
回复
TomyChoi 2008-01-09
设置窗体的这个属性不行吗:StartUpPosition=2
回复
xieyudada 2008-01-09
If MDIForm1.Width - 200 - Me.Width > 0 Then Me.Left = (MDIForm1.Width - 200 - Me.Width) / 2 Else Me.Left = 0 '设置子窗体的显示位置。
If MDIForm1.Height - 2080 - Me.Height > 0 Then Me.Top = (MDIForm1.Height - 2080 - Me.Height) / 2 Else Me.Top = 0
回复
kindy0301 2008-01-09
我试过 子窗体并不能显示在主窗体的正中间!
还是谢谢2楼朋友
回复
jieweibin 2008-01-09
Sub LoadMe(Source As Form)
Source.top = (MDIForm1.ScaleHeight - Source.Height) / 2
Source.Left = (MDIForm1.ScaleWidth - Source.Width) / 2
End Sub

Private Sub Form_Load()
Height = 3885: Width = 4800 '定义好子窗体的高度和宽度
LoadMe Me '居中显示
End Sub
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7452

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告