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

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

在使用该MasterPage的ContentPage的Designer中,我可以看到DropDownList和ObjectDataSource。 你自己看。
替代文字

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

我想这可以用属性实现。 我必须设置哪些?

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

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

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

我对WebForms不太熟悉,但BrowsableAttribute可能就是你想要的。 另请参阅DesignTimeVisibleAttribute 。

System.ComponentModel命名空间具有许多其他属性,可以执行您所需的操作。

Visual Studio不支持这一点。 在你指定“用户控制”这个词的那一刻,事情就变成了beserk并呈现你放在它上面的一切。

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