void ActionTreeView_OnActionTreeNodeMouseClick(object s) { ScreenTreeNode sender = s as ScreenTreeNode; if (sender != null) { object screenObj = null; if (sender.CachedScreen == null) { ActionNodeData data = sender.Parameter as ActionNodeData; Type type = Type.GetType(data.TypeName); ConstructorInfo ci = type.GetConstructor(Type.EmptyTypes); screenObj = ci.Invoke(null); sender.CachedScreen = (Form)screenObj; } else { screenObj = sender.CachedScreen; } ScreenRegion region = screenObj as ScreenRegion; ContentPanel.Embed(region, EmbedType.Fill); } }