Control.HasChildren Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Denetimin bir veya daha fazla alt denetim içerdiğini belirten bir değer alır.
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
Özellik Değeri
true
denetim bir veya daha fazla alt denetim içeriyorsa; aksi takdirde , false
.
- Öznitelikler
Örnekler
Aşağıdaki kod örneği, denetimlerin BackColor ve ForeColor değerlerini varsayılan sistem renklerine ayarlar. Denetimin alt denetimleri varsa kod özyinelemeli olarak kendisini çağırır. Bu kod örneği için en az bir Form alt denetime sahip bir sahip olmanız gerekir; ancak, kendi alt denetimlerine sahip veya GroupBoxgibi bir Panel alt kapsayıcı denetimi özyineleni daha iyi gösterebilir.
// 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
Açıklamalar
Koleksiyon Count sıfırdan Controls büyükse özelliği HasChildren döndürürtrue
. Özelliğine HasChildren erişmek, denetimin alt öğeleri yoksa bir Control.ControlCollection oluşturulmasını zorlamaz, bu nedenle bu özelliğe başvurmak bir denetim ağacını gezdirirken bir performans avantajı sağlayabilir.