Udostępnij za pośrednictwem


Control.HasChildren Właściwość

Definicja

Pobiera wartość wskazującą, czy kontrolka zawiera co najmniej jedną kontrolkę podrzędną.

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

Wartość właściwości

true jeśli kontrolka zawiera co najmniej jedną kontrolkę podrzędną; w przeciwnym razie , false.

Atrybuty

Przykłady

Poniższy przykład kodu ustawia kontrolki BackColor i ForeColor na domyślne kolory systemowe. Kod cyklicznie wywołuje się, jeśli kontrolka ma jakiekolwiek kontrolki podrzędne. Ten przykład kodu wymaga posiadania Form co najmniej jednej kontrolki podrzędnej, jednak kontrolka kontenera podrzędnego, taka jak lub PanelGroupBox, z własnymi kontrolkami podrzędnymi, lepiej demonstruje rekursję.

   // 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

Uwagi

Controls Jeśli kolekcja ma Count wartość większą niż zero, HasChildren właściwość zwróci wartość true. Uzyskiwanie HasChildren dostępu do właściwości nie wymusza tworzenia Control.ControlCollection kontrolki, jeśli kontrolka nie ma elementów podrzędnych, dlatego odwołanie się do tej właściwości może zapewnić korzyść z wydajności podczas chodzenia drzewa kontrolek.

Dotyczy

Zobacz też