如何在Designer中隐藏UserControl的内部控件?

时间:2010-09-08 15:54:57

标签: c# asp.net user-controls

我有一个包含DropDownList和ObjectDataSource的UserControl。该控件用于我的MasterPage的标记。

在使用该MasterPage的ContentPage的Designer中,我可以看到DropDownList和ObjectDataSource。亲眼看看。
alt text

我知道其他控件(如ComponentArt:Grid)只显示自己作为外部容器并隐藏内部控件。

我想这可以通过属性以某种方式实现。我必须设置哪些?

3 个答案:

答案 0 :(得分:1)

我对WebForms不是很熟悉,但BrowsableAttribute可能就是你想要的。另请查看DesignTimeVisibleAttribute

System.ComponentModel namespace有许多其他属性可以满足您的需求。

答案 1 :(得分:1)

我猜你所指的控件ComponentArt:Grid有一个关联的ControlDesigner可以做任何事情,包括设计时可编辑区域和自定义操作菜单(与上面的箭头相关的菜单)右上角。)

但是,Visual Studio没有[我上次尝试]为UserControls执行控件设计器,因此您无法轻松控制它。 UserControlDesigner的后台有很多魔法,包括解析html代码。但是,我从未见过代码隐藏文件的实际编译,其中将指定ControlDesigner属性。

您需要将控件重写为Visual Studio的服务器控件,以检查属性并允许自定义设计时视图。

答案 2 :(得分:0)

Visual Studio不支持此功能。在你指定“用户控制”这个词的那一刻,事情就变成了beserk并呈现你所放置的所有内容。

幸运的是,可以影响服务器控件的呈现方式。换句话说,您可以通过使用它来欺骗Visual Studio设计器。您可以在此处找到所需的代码:http://www.codeproject.com/Tips/773145/Hiding-contents-in-ASP-Net-user-control-designer