0

我有一个包含多个带有复选框的 TreeView ActiveX 控件的表单。根据第一个 TreeView 中的选定项目,我在其他 TreeView 中显示不同的项目。

如果在第一个 TreeView 中选择了未选中的项目,我想禁用所有 TreeViews。为此,我检查是否在我的更新功能中检查了 SelectedItem。如果不是,我将除第一个和退出之外的所有 TreeView 的 Enabled 属性设置为 false。如果选中它,我将属性设置回 true 并根据第一个 TreeView 的 SelectedItem 更新 TreeViews。

它正在工作,但我的问题是,当我将 Enabled 属性设置回 true 时,在将其设置为 false 后,TreeView 会显示在左上角。它们堆放在角落里,所以只能看到最后一个。

我一直在寻找有关如何解决此问题的提示,但没有运气。任何想法?

4

2 回答 2

1

对于未来的搜索者:

我也遇到了 TreeView 跳到左上角的问题。就我而言,我也有一个更新的子报告,在我单击 TreeView 之前一切都很好。一旦我这样做了,视图就会跳到左上角。

这是我为修复它所做的:

Private Sub MyTree_GotFocus()
  Me.MyTree.Top = Me.MyTree.Top
  Me.MyTree.Left = Me.MyTree.Left
End Sub

即使它只是将属性设置为等于它们的当前值,更新值也会重新锚定元素。

您很可能只需在触发跳转的任何内容之后添加这些行。

Me.MyTree.Enabled = True
Me.MyTree.Top = Me.MyTree.Top
Me.MyTree.Left = Me.MyTree.Left
于 2014-12-19T17:00:21.737 回答
0

我有一个类似的问题,当我从一个选项卡切换到另一个选项卡时,树视图会移动。我可以让它停止这样做的唯一方法是将 TreeView 控件放在它自己的子窗体中(除了 TreeView 控件之外什么都没有,并将该子窗体放在主窗体上。

于 2012-12-19T03:36:54.900 回答