2

请帮我解决我的问题。

我有 TreeView 和 Frames,如果我点击 TreeView 的一个项目,如何移动它们?

使用 PageControl (PageControl1.Pages[i].TabVisible := false;) 而不是 Frames 或 Frames 更合适?

非常感谢!

4

1 回答 1

4

要回答您的第一个问题“如何......使用 TreeView?” :实现TreeView的OnChange事件。节点参数指的是新选择的项目。

关于您的第二个问题“我应该使用 Frames 还是 PageControl?” : 嗯,一个不排除另一个,你完全可以同时使用。事实上,当您多次使用此类 TabPage 的内容时,我建议您这样做。在这些情况下,请将 Frame withAlign = alClient放在您的 TabPage 上。

框架对于设计任意可重用容器很有用。例如:您可以在 PageControl 的每个页面上设置相同的 FrameType,假设它们看起来都相同但每个都使用不同的数据。

使用框架的另一个可能的小优点是不会对 TabPages 上的所有控件感到困惑。

但是如果每个 TabPage 在视觉风格或控件布局方面都是独一无二的,那么不使用框架并直接在 PageControl 上设计页面是完全可以的。

关于转移部分:我不完全了解您想通过设置选项卡的可见性来完成什么,但是基于节点转移到另一个页面(完全取决于您的实现)可能很简单:

procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
  PageControl1.ActivePageIndex := Node.Index;
end;
于 2011-06-03T18:57:01.717 回答