我能想到并且尝试的方法,就是右侧用不同的panel控件,设置隐藏,调用的时候,显示。
但这样操作起来会很麻烦。
using System.Linq; using System.Windows.Forms; namespace WindowsFormsApplication9 { public partial class FormMain : Form { #region 构造函数 public FormMain() { InitializeComponent(); Tv.AfterSelect += Tv_AfterSelect; } #endregion #region 控件事件 void Tv_AfterSelect(object sender, TreeViewEventArgs e) { if (e.Node.Tag == null) return; foreach (var panel in PanelContainer.Controls.Cast<Panel>()) { if (panel.Tag == null) continue; var targetId = e.Node.Tag.ToString(); if (panel.Visible) panel.Visible = false; else { if (panel.Tag.ToString() != targetId) continue; panel.Dock = DockStyle.Fill; panel.Visible = true; } } } #endregion } }