EmptyControlCollection(Control) 构造函数

定义

初始化 EmptyControlCollection 类的新实例。

public:
 EmptyControlCollection(System::Web::UI::Control ^ owner);
public EmptyControlCollection (System.Web.UI.Control owner);
new System.Web.UI.EmptyControlCollection : System.Web.UI.Control -> System.Web.UI.EmptyControlCollection
Public Sub New (owner As Control)

参数

owner
Control

将此集合作为其子控件集合拥有的 Control

示例

下面的代码示例尝试使用子控件填充控件,导致异常。 这是因为容器控件不允许子控件。 下面是用于生成可执行文件的命令行。

vbc /r:System.dll /r:System.Web.dll /t:library  
       /out:myWebAppPath/bin/vb_myEmptyControlCollection.dll  
       myEmptyControlCollection.vb  
csc /t:library /out:myWebAppPath/bin/cs_myEmptyControlCollection.dll  
    myEmptyControlCollection.cs  

/* File name: emptyControlCollection.cs. */

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections;

namespace CustomControls
{

  // Defines a simple custom control.
  public class MyCS_EmptyControl : Control
  {
    [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")] 
    protected override ControlCollection CreateControlCollection() 
    /*
     * Function Name: CreateControlCollection.
     * Denies the creation of any child control by creating an empty collection.
     * Generates an exception if an attempt to create a child control is made.
     */
     {
       return new EmptyControlCollection(this);
     }
     
     [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")] 
     protected override void CreateChildControls()
     /*
      * Function Name: CreateChildControls.
      * Populates the child control collection (Controls). 
      * Note: This function will cause an exception because the control does not allow 
      * child controls.
      */
      {
        // Create a literal control to contain the header and add it to the collection.
        LiteralControl text;
        text = new LiteralControl("<h5>Composite Controls</h5>");
        Controls.Add(text);
      }
   }
}

' File name: emptyControlCollection.vb.

Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Collections


Namespace CustomControls 

  Public Class MyVB_EmptyControl 
    Inherits Control
    
    <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
    Protected Overrides Function CreateControlCollection() As ControlCollection
    ' Function Name: CreateControlCollection.
    ' Denies the creation of any child control by creating an empty collection.
    ' Generates an exception if an attempt to create a child control is made.
      Return New EmptyControlCollection(Me)
    End Function 
    
    <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _  
    Protected Overrides Sub CreateChildControls()
    ' Sub Name: CreateChildControls.
    ' Populates the child control collection (Controls). 
    ' Note: This function will cause an exception because the control does not allow 
    ' child controls.
      Dim text As LiteralControl
      text = New LiteralControl("<h5>Composite Controls</h5>")
      Controls.Add(text)
    End Sub 
  End Class 

End Namespace

下面的代码示例使用上面定义的空自定义控件。 运行此示例时,将收到异常。 请注意, 指令中显示的 Register 值反映了上一个命令行。

<%@ Register TagPrefix="custom" Assembly="vb_myEmptyControlCollection" Namespace="CustomControls" %>  
 <html>  
  <body>  
  <h1>Using an Empty Control</h1>  
  <custom:MyVB_EmptyControl id="vbEmptyControlId" runat="server"/>  
  </body>  
 </html>  
<%@ Register TagPrefix="custom" Assembly="cs_myEmptyControlCollection" Namespace="CustomControls" %>  
 <html>  
  <body>  
  <h1>Using an Empty Control </h1>  
  <custom:MyCS_EmptyControl id="csEmptyControlId" runat="server"/>  
  </body>  
 </html>  

适用于