Sdílet prostřednictvím


Control.HasChildren Vlastnost

Definice

Získá hodnotu označující, zda ovládací prvek obsahuje jeden nebo více podřízených ovládacích prvků.

public:
 property bool HasChildren { bool get(); };
[System.ComponentModel.Browsable(false)]
public bool HasChildren { get; }
[<System.ComponentModel.Browsable(false)>]
member this.HasChildren : bool
Public ReadOnly Property HasChildren As Boolean

Hodnota vlastnosti

trueobsahuje-li ovládací prvek jeden nebo více podřízených ovládacích prvků; v opačném případě . false

Atributy

Příklady

Následující příklad kódu nastaví BackColor ovládací prvky a ForeColor na výchozí systémové barvy. Kód rekurzivně volá sám sebe, pokud má ovládací prvek nějaké podřízené ovládací prvky. Tento příklad kódu vyžaduje, abyste měli Form alespoň jeden podřízený ovládací prvek, ale podřízený ovládací prvek kontejneru, jako je Panel nebo GroupBox, s vlastními podřízenými ovládacími prvky by rekurze lépe demonstroval.

   // Reset all the controls to the user's default Control color.
private:
   void ResetAllControlsBackColor( Control^ control )
   {
      control->BackColor = SystemColors::Control;
      control->ForeColor = SystemColors::ControlText;
      if ( control->HasChildren )
      {
         // Recursively call this method for each child control.
         IEnumerator^ myEnum = control->Controls->GetEnumerator();
         while ( myEnum->MoveNext() )
         {
            Control^ childControl = safe_cast<Control^>(myEnum->Current);
            ResetAllControlsBackColor( childControl );
         }
      }
   }
// Reset all the controls to the user's default Control color. 
private void ResetAllControlsBackColor(Control control)
{
   control.BackColor = SystemColors.Control;
   control.ForeColor = SystemColors.ControlText;
   if(control.HasChildren)
   {
      // Recursively call this method for each child control.
      foreach(Control childControl in control.Controls)
      {
         ResetAllControlsBackColor(childControl);
      }
   }
}
' Reset all the controls to the user's default Control color. 
Private Sub ResetAllControlsBackColor(control As Control)
   control.BackColor = SystemColors.Control
   control.ForeColor = SystemColors.ControlText
   If control.HasChildren Then
      ' Recursively call this method for each child control.
      Dim childControl As Control
      For Each childControl In  control.Controls
         ResetAllControlsBackColor(childControl)
      Next childControl
   End If
End Sub

Poznámky

Controls Pokud je Count hodnota kolekce větší než nula, HasChildren vrátí truevlastnost . Přístup k HasChildren vlastnosti nevynutí vytvoření objektu Control.ControlCollection , pokud ovládací prvek nemá žádné podřízené položky, takže odkazování na tuto vlastnost může poskytnout výkonnostní výhodu při procházení stromu ovládacích prvků.

Platí pro

Viz také