2009-01-21 114 views
2

我的问题是我的Access 2002应用程序中的树视图。TreeView自己填充并崩溃Access

当我打开表单时,它已经填充。这很奇怪,因为添加节点的唯一代码绑定到一个按钮。

此外,只显示部分数据,当我在制表符()之间切换时,树视图中的数据将复制/双击。当我然后击中任何其他标签访问崩溃即时就像* zap *

是否有必要一直清理树视图?

任何其他的想法什么问题可能是 - 解决方案也欢迎;)

干杯, 拉蒙

+0

没有本地Access树视图控件,也没有几个专业开发人员,我知道它使用它。这太糟糕了MS在这方面没有做得更好,因为它是一个非常熟悉和有用的界面。 – 2009-01-23 03:17:57

回答

0

感谢您的建议。

我仍然没有找到为什么数据加载到TreeView,但我想出了一个解决方案。

首先,我在表单加载时开始清理TreeView。
这确实对稳定性有一些好处。现在可以点击而不会崩溃访问。

当数据加载到TreeView时,旧行为再次出现。在选项卡之间切换会添加更多数据,并最终导致Access崩溃。

似乎TreeView(版本6.0)正在重建自己,没有正确清理。
基于这个假设,我现在在切换到包含选项卡时清除并重建TreeView。

我仍然对根本原因感兴趣,但现在工作。再次

感谢, 拉蒙

0

首先,找出原因TreeView所加载的时候,你还没有告诉它呢。 逐步通过您的代码。你必须先解决这个问题。

其次,如果您不加载TreeView但切换制表符,表单会崩溃吗?

1

我也碰到过这个问题,并追查到TreeView控件不喜欢被一个标签页上。你将不得不重新设计你的表单,以保持选项卡外的树形视图。

如果有似乎是一个标签页,那么你可以尝试.......

放置标签控件后面的树视图。 将选项卡控件的背景设置为透明。 在选项卡控件的“更改”事件中,可以检查选中哪个选项卡。 如果它是你想要的选项卡,然后设置树视图visbale,如果没有,然后隐藏它

1

我使用VCL(德尔福/ BCB)包装作为选项卡上的树视图控制(TPageControl上的TTreeView)。

我的程序挂起后,我调用TreeView1.Items.Clear。 但只限于'某些'情况!特别是如果我展开一个项目,然后尝试清除()所有项目。如果我从不碰任何节点(或只是滚动),那就没问题。

我发现在调用Items.Clear之前将选定节点设置为NULL。

有趣的是,调用清除()引起了一些的OnChange事件的发生出于某种原因,这是不预期(因为我们反正删除所有节点!)...

0

我无法相信这个问题仍然存在并且微软没有发布修复程序!我遇到了与运行Office 2010的Windows 8.1相同的问题

在任何情况下,我到达的最简单的解决方法(可能会节省资源)是在窗体的“On Current Event”中构建当前活动选项卡的TreeView ”。

Private Sub Form_Current() 
    Select Case Me.tabCompany.Value 'Return Page Index of active page 
     Case 0 ' Page Index for Page 1. 
      Call TVPage1 
     Case 1 ' Page Index for Page 2. 
      Call TVPage2 
    End Select 
End Sub 

另一件事要记住的是运行相同程序来更新树视图,同时从一个页面切换到另一个在“论更改事件”选项卡:

Private Sub tabCompany_Change() 
    Select Case Me.tabCompany.Value 'Return Page Index of active page 
     Case 0 ' Page Index for Page 1. 
      Call TVPage1 
     Case 1 ' Page Index for Page 2. 
      Call TVPage2 
    End Select 
End Sub 

干杯!