设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3404|回复: 6
打印 上一主题 下一主题

[Access本身] TreeView子窗体如何隐藏/显示?出错“控件或子窗体控件放置在这个位置太大了。”

[复制链接]
跳转到指定楼层
1#
发表于 2010-7-10 19:14:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TreeView子窗体如何隐藏/显示?为何出错“控件或子窗体控件放置在这个位置太大了。”?

我的程序中,用一个按钮,实现窗体左侧的TreeView子窗体的隐藏/显示功能,基本能达到要求,但是当反复多次使用该按钮后,如2次、或4次、或6次、或更多偶数次恢复原窗体状态时,就会弹出错误提示““控件或子窗体控件放置在这个位置位置太大了。”!

我新建了一个样例,附后,同样存在这个问题。请问这是为什么?又有什么比较简便的方法实现TreeView子窗体的隐藏/显示功能呢?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2010-7-11 06:57:12 | 只看该作者
每按一次>>,你不觉得TREEVIEW控件不断往左移吗。每次操作要恢复TREEVIEW控件的LEFTW值才可以
3#
 楼主| 发表于 2010-7-11 11:45:51 | 只看该作者
楼上的,不是像你说的,麻烦先下载附件看一下好吗。
4#
发表于 2010-7-15 17:29:32 | 只看该作者
测试过,总是在第16次出现故障,不明被什么原因。
代码看起来逻辑上也没有问题,我用move方法的时候,也莫名其妙的遇到,又莫名其妙的消失,并没有你的这个这么有规律。
5#
发表于 2010-7-15 17:37:56 | 只看该作者
用Debug.Print方法检查你的几个变量,也只有两种组合,没有发现2楼说的位移的现象。
不过,设置left和width两个变量,用来调整fsbPD的位置,就没有问题:
Private Sub Cmd收展_Click()
'On Error GoTo Err_Cmd收展_Click
    'Dim SubLeft As Long
    'Dim TreeViewLeft As Long
    Dim xxleft
    Dim xxwidth
If Me.Cmd收展.Caption = "<<" Then
    xxleft = TREEVIEW.Left
    xxwidth = fsbPD.Width + fsbPD.Left - TREEVIEW.Left
   
   
    Me.TREEVIEW.Visible = False
  '  KaLeft = Me.选项卡控件20.Left
   
    'PageLeft = Me.配电线路.Left
   
  '  SubLeft = Me.fsbPD.Left
  '  SubWidth = Me.fsbPD.Width
   
  '  Me.fsbPD.Left = Me.TREEVIEW.Left
   
    'Me.选项卡控件20.Left = 5
    'Me.fsbPD.Width = Me.InsideWidth - 50
   
  '  Me.fsbPD.Width = Me.fsbPD.Width + SubLeft - Me.TREEVIEW.Left
    Me.Cmd收展.Caption = ">>"
   
    Me.fsbPD.Left = xxleft
    Me.fsbPD.Width = xxwidth
    'Me.选项卡控件20.Left = xxleft - 50
   
   
Else
   
    xxleft = TREEVIEW.Left + TREEVIEW.Width + 100
    xxwidth = fsbPD.Width - TREEVIEW.Width - 100
   
   
   
   
  '  Me.fsbPD.Left = SubLeft
  '  Me.fsbPD.Width = SubWidth
  '  Me.选项卡控件20.Left = KaLeft
    'Me.选项卡控件20.Left = 6240
   
    Me.TREEVIEW.Visible = True
    Me.Cmd收展.Caption = "<<"
   
    Me.fsbPD.Left = xxleft
    Me.fsbPD.Width = xxwidth
    'Me.选项卡控件20.Left = xxleft - 50
   
End If
     Debug.Print Me.fsbPD.Left
    Debug.Print Me.fsbPD.Width
    Debug.Print " "

'Exit_Cmd收展_Click:
'    Exit Sub

'Err_Cmd收展_Click:
'    MsgBox Err.Description, , ""
   
'    MsgBox "出错,重启。", , ""
'    DoCmd.Close
'    DoCmd.OpenForm "窗体1"
   
'    Resume Exit_Cmd收展_Click
End Sub
6#
 楼主| 发表于 2010-7-18 14:05:19 | 只看该作者
感谢楼上的。不过,我试了一下,你的上下两句:   'Me.选项卡控件20.Left = xxleft - 50
都没有启用。如果不启用这两句则不会有问题,如果启用这两句,则同样是第16次出现同样的错误。
7#
 楼主| 发表于 2010-7-18 14:07:44 | 只看该作者
我的正式程序中也同样的这样处理的,不过每次是第4次就会出现错误报告。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-24 16:08 , Processed in 0.095906 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表