不用那么复杂,建立两个窗体,在form1上建立一个命令按钮,并编写代码,最后运行,不管form1在何处,单击command1后form2总是在form1的上边紧挨着!快试试吧
成都创新互联专注于企业全网整合营销推广、网站重做改版、祁阳网站定制设计、自适应品牌网站建设、H5网站设计、成都商城网站开发、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为祁阳等各大城市提供网站开发制作服务。
private
sub
command1_click()
form2.show
form2.top
=
form1.top
-
form2.height
form2.left
=
form1.left
end
sub
你的 Me.StartPosition =FormStartPosition.CenterScreen 写在哪的?
写在Form_Load事件里是不起作用的(也不叫不起作用,只是那个时候窗体已经不算Start了),一般代码是这样写,在Form1中的某个地方
Dim frm As New Form2
frm.StartPosition =FormStartPosition.CenterScreen
frm.ShowDialog()
如果你一定要在Form2中通过代码设置,可以把Me.StartPosition =FormStartPosition.CenterScreen移到Form2的构造函数中。
form窗体有一个属性是startposition,把它设置为centerscreen就是居中。
代码为
me.startposition
=
formstartposition.centerscreen。
如果是非要计算分辨率的话:
my.computer.screen.bounds.width
是分辨率中的宽度
my.computer.screen.bounds.height
是分辨率中的高度
那么
me.top
=
(my.computer.screen.bounds.height
-
me.height)
/
2
me.left
=
(my.computer.screen.bounds.width
-
me.width)
/
2
就是让窗体居中啦~
Dim locForm2 As New Point
locForm2.X = 150
locForm2.Y = 50
Form2.MdiParent = Me
Form2.Show()
Form2.Location = locForm2
前三句,声明了一个坐标点,并且赋了值
最后一句,当Form2显示了后,把坐标点赋给Form2的位置属性,就可以让Form2出现在你给定的位置了
父窗体关闭的时候,子窗体自然就关闭了。所以你第二个问题不是问题。
StartPosition属性有如下选项,分别含义如下:
CenterParent 窗体在其父窗体中居中。
CenterScreen 窗体在当前显示窗口中居中,其尺寸在窗体大小中指定。
Manual 窗体的位置由Location属性确定。
WindowsDefaultBounds 窗体定位在Windows默认位置,其边界也由Windows默认决定。
WindowsDefaultLocation 窗体定位在Windows默认位置,其尺寸在窗体大小中指定。
CenterScreen的意思并不是屏幕居中(是相对的),它是在"当前显示窗口"中居中。当用Show()方法时应选择CenterScreen,用ShowDialog()方法时应选择CenterParent,这样才能让要显示的窗口居中。