以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]分区面板内控件布局问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=34326) |
||||
-- 作者:傻马难骑 -- 发布时间:2013/6/5 13:32:00 -- [求助]分区面板内控件布局问题 大家好,请教个分区面板内控件布局的问题:
我想将附件中分区面板左侧的上下二部分做成相等高度,且控件在各自分区内居中。 自己弄了很久都没弄好,请各位帮下忙,谢谢。
背景色只是为了区分各分区而设。
|
||||
-- 作者:Bin -- 发布时间:2013/6/5 14:08:00 -- .
|
||||
-- 作者:lsy -- 发布时间:2013/6/5 14:42:00 -- 两个SplitContainer的停靠都设为Fill AfterLoad
Dim spl As WinForm.SplitContainer = e.Form.Controls("SplitContainer2") [此贴子已经被作者于2013-6-5 15:01:51编辑过]
|
||||
-- 作者:don -- 发布时间:2013/6/5 15:08:00 -- 3楼的代码应该不能达到楼主目的:因e.Form.Height应该是窗口的初始设计高度,不是主窗口打开后的高度 [此贴子已经被作者于2013-6-5 15:16:43编辑过]
|
||||
-- 作者:don -- 发布时间:2013/6/5 15:19:00 -- 两个SplitContainer的停靠都设为Fill 主窗口AfterLoad MyTimers("计划1").Enabled = 1 \' 计划1 With forms("窗口1") If .Opened Then Dim h1,h2,w1,w2 As Integer h1 =.height/2 w1 =.Controls("SplitContainer2").width .Controls("SplitContainer2").SplitterDistance = h1 Dim kjms As String() = {"Button1","TextBox1"} For Each kjm As String In kjms h2 =.Controls(kjm).height w2 =.Controls(kjm).width .Controls(kjm).Left = (w1 - w2)/2 .Controls(kjm).Top = (h1 - h2)/2 Next MyTimers("计划1").Enabled = 0 End If End With
[此贴子已经被作者于2013-6-5 15:19:45编辑过]
|
||||
-- 作者:傻马难骑 -- 发布时间:2013/6/5 15:48:00 -- 谢谢各位。
2楼的附件与我上传的附件一样的,不知是不是传错了? 3楼的代码左上按钮水平、垂直均居中,达到了我想要的效果,但左下的文本框水平居中,垂直没能居中。 5楼的效果与3楼基本相同,但我不清楚为什么要做成计划?!
再次谢谢各位! [此贴子已经被作者于2013-6-5 15:52:45编辑过]
|
||||
-- 作者:lsy -- 发布时间:2013/6/5 15:56:00 -- Dim spl As WinForm.SplitContainer = e.Form.Controls("SplitContainer2")
如果窗口是主窗口一类,设计大小与打开时的大小有区别,代码如下:
Dim spl As WinForm.SplitContainer = e.Form.Controls("SplitContainer2") [此贴子已经被作者于2013-6-5 16:07:47编辑过]
|
||||
-- 作者:傻马难骑 -- 发布时间:2013/6/5 16:00:00 -- e.Form.Height 这个属性在代码编辑窗口怎么按Tab键后找不到呢?我还以为Form没有这个属性呢 |
||||
-- 作者:傻马难骑 -- 发布时间:2013/6/5 16:18:00 -- 以下是引用lsy在2013-6-5 15:56:00的发言:
Dim spl As WinForm.SplitContainer = e.Form.Controls("SplitContainer2")
如果窗口是主窗口一类,设计大小与打开时的大小有区别,代码如下:
Dim spl As WinForm.SplitContainer = e.Form.Controls("SplitContainer2") [此贴子已经被作者于2013-6-5 16:07:47编辑过]
越弄越复杂了,WorkingAreaHeight*0.75 这里为什么要 *0.75? SplitContainer2上下二半没能相同高度。 |
||||
-- 作者:lsy -- 发布时间:2013/6/5 16:22:00 -- 以下是引用傻马难骑在2013-6-5 16:18:00的发言:
越弄越复杂了,WorkingAreaHeight*0.75 这里为什么要 *0.75? SplitContainer2上下二半没能相同高度。 直接除以2,当然是一半,但是看起来不像各一半,*0.75以后,看起来像各一半,视觉差别,你要觉得/2感觉不错,那也行。
|