Foxtable(狐表)用户栏目专家坐堂 → [求助]分区面板自动大小代码没执行


  共有2896人关注过本帖树形打印复制链接

主题:[求助]分区面板自动大小代码没执行

帅哥哟,离线,有人找我吗?
jyh7081
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:968 积分:8551 威望:0 精华:0 注册:2012/10/3 13:25:00
[求助]分区面板自动大小代码没执行  发帖心情 Post By:2017/7/9 13:49:00 [只看该作者]

窗口中的页面集合有4个页面,每个页面内有一个分区面板,希望在打开窗口时每个分区面板的两个分区大小一样,代码如下,放在窗口的afterload事件中,但没有起作用,是何原因?

Dim sp3 As WinForm.SplitContainer = e.Form.Controls("SplitContainer3")
sp3.SplitterDistance = sp3.Width * 0.5
Dim sp4 As WinForm.SplitContainer = e.Form.Controls("SplitContainer4")
sp4.SplitterDistance = sp4.Width * 0.5
Dim sp5 As WinForm.SplitContainer = e.Form.Controls("SplitContainer5")
sp5.SplitterDistance = sp5.Width * 0.5
Dim sp6 As WinForm.SplitContainer = e.Form.Controls("SplitContainer6")
sp6.SplitterDistance = sp6.Width * 0.5
[此贴子已经被作者于2017/7/9 14:07:24编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/9 14:09:00 [只看该作者]

我测试没问题,做个例子上来看看。

 回到顶部
帅哥哟,离线,有人找我吗?
jyh7081
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:968 积分:8551 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2017/7/9 15:18:00 [只看该作者]

出错的例子:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.table


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/9 15:26:00 [只看该作者]

写到sizechanged事件去。

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
jyh7081
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:968 积分:8551 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2017/7/9 17:00:00 [只看该作者]

写到示例的sizechanged事件去没问题,写到我的项目中提示:

图片点击可在新窗口打开查看此主题相关图片如下:image 3.jpg
图片点击可在新窗口打开查看



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/9 17:43:00 [只看该作者]

当你的控件足够小的时候,就会报错。加上判断

 

Dim sp3 As WinForm.SplitContainer = e.Form.Controls("SplitContainer3")

If sp3.width > 10 Then
    sp3.SplitterDistance = sp3.Width * 0.5
End If


 回到顶部
帅哥哟,离线,有人找我吗?
jyh7081
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:968 积分:8551 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2017/7/9 18:01:00 [只看该作者]

不报错了,但是没起作用

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/9 18:33:00 [只看该作者]

你给的例子,我测试没问题。

 回到顶部
帅哥哟,离线,有人找我吗?
jyh7081
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:968 积分:8551 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2017/7/9 18:55:00 [只看该作者]

抱歉版主,有个情况没交代清楚,窗口打开时右半边是隐藏的,afterload里有这句代码,忘记写入示例了:e.Form.Controls("SplitContainer2").Panel2.Collapsed = True。
代码放入页面集合的SelectedIndexChanged中,然后改变了一下页签的顺序,就好了,也不知道为什么要变一下页签顺序,才会好。
示例没问题。

[此贴子已经被作者于2017/7/9 20:05:07编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/9 21:23:00 [只看该作者]

回复9楼,你panel2是折叠的,那其宽度就为0。当你改变panel2宽度的时候,又没有触发代码,自然无效。

 

反正,你找一个地方触发代码就好了。


 回到顶部