以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 分区面板尺寸 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=186004) |
||||
-- 作者:cd_tdh -- 发布时间:2023/3/31 9:03:00 -- 分区面板尺寸 在设计时间,效果如下: 窗口大小改变后的代码如下:Dim x1 As Integer = e.Form.Controls("Button1").Width \'更多 Dim x2 As Integer = e.Form.Controls("Button2").Width ‘更多 Dim p As WinForm.SplitPanel = e.Form.Controls("SplitContainer8").Panel1 p.Width = x1 + x2 + 10 MessageBox.Show(p.Width) 但是窗口最大化后,p的尺寸没有改变,p的实际尺寸比用代码设置的大,明显没有对齐,是什么问题呢,效果如下: |
||||
-- 作者:有点蓝 -- 发布时间:2023/3/31 9:08:00 -- 要设置SplitterDistance:http://www.foxtable.com/webhelp/topics/0819.htm |
||||
-- 作者:cd_tdh -- 发布时间:2023/3/31 9:41:00 -- 怎么设置位置? 窗口大小改变后,分隔条宽度并没有改变啊。都是10
|
||||
-- 作者:有点蓝 -- 发布时间:2023/3/31 9:49:00 -- http://www.foxtable.com/webhelp/topics/0822.htm |
||||
-- 作者:cd_tdh -- 发布时间:2023/3/31 10:04:00 -- 老师,窗口改变后,分割条宽度是没变的啊,调试出来都是10 Dim p1 As WinForm.SplitContainer = e.Form.Controls("SplitContainer8")
MessageBox.Show (p1.SplitterWidth) |
||||
-- 作者:有点蓝 -- 发布时间:2023/3/31 10:14:00 -- 不写代码设置,肯定不会变啊。代码放在哪里的? |
||||
-- 作者:cd_tdh -- 发布时间:2023/3/31 10:15:00 -- 感觉是bug,拉伸后底层是不是把分割条宽度也算到拉伸里面了,实际分割条宽度是没变的 |
||||
-- 作者:cd_tdh -- 发布时间:2023/3/31 10:22:00 --
|
||||
-- 作者:有点蓝 -- 发布时间:2023/3/31 10:26:00 -- 我测试分隔条的宽度没有变化。要注意分区面板的总宽度=panel1的宽度+panel2的宽度+分隔条的宽度 |
||||
-- 作者:cd_tdh -- 发布时间:2023/3/31 10:31:00 -- 这样可以了,只能通过设置分割条位置来控制,不能去设置panel的尺寸来控制 Dim x1 As Integer = e.Form.Controls("Button1").Width Dim x2 As Integer = e.Form.Controls("Button2").Width Dim p1 As WinForm.SplitContainer = e.Form.Controls("SplitContainer8") p1.SplitterDistance = x1 + x2 + 10 直接设置分割条位置 完整一点就这样写: Dim p As WinForm.SplitContainer = e.Form.Controls("SplitContainer8") Dim x1 As Integer = e.Form.Controls("Button1").Width Dim x2 As Integer = e.Form.Controls("Button2").Width Dim x3 As Integer = p.SplitterWidth \'分割条宽度 p.SplitterDistance = x1 + x2 + x3 \'分割条位置 [此贴子已经被作者于2023/3/31 10:37:13编辑过]
|