我希望在运行时在面板中显示不同的控件,具体取决于菜单选择。
有什么想法吗?
答案 0 :(得分:1)
将所有可能的控件放在面板中,然后(假设您正在使用ASP.Net菜单控件)将相应控件的.Visible
属性设置为True
,并将所有其他控件设置为{ {1}} .Visible
事件中的False
属性。
答案 1 :(得分:1)
您只需要实例化所需的控件并通过
添加它YourPanel.Controls.Add(yourcontrol)
我认为在VB中必须几乎相同。
答案 2 :(得分:1)
如果您希望所有控件始终可用(用于数据共享),您可以按照Joel的建议进行操作。但从语法上讲,如果您将菜单项与Page_OnLoad()
内的控件相关联,我会说你可以更容易:
Control1.Visible = MenuItem1.Selected;
Control2.Visible = MenuItem1.Selected || MenuItem2.Selected;
Control3.Visible = MenuItem3.Selected;
希望有所帮助。
答案 3 :(得分:1)
1)在Visible = false的父页面中添加所有用户控件。根据菜单选择,使Visible = true。
优点 - 易于实施
缺点 - 昂贵。将在加载父页面时调用每个用户控件的Load事件。
2)将控件动态加载到占位符。
this.PlaceHolder1.Controls.Add(子);
优点 - 重量轻。
缺点 - 如果父页面想要在回发后从用户控件中检索数据,则需要编写一些代码。