2010-07-21 13 views

Respuesta

7

si lo que desea saber que el control sea en la parte delantera de una colección de los padres, simplemente haga lo siguiente:

private bool IsControlAtFront(Control control) 
{ 
    return control.Parent.Controls.GetChildIndex(control) == 0; 
} 

en cuenta que el índice Z es el control tapa la mayoría, cuanto mayor sea el número, inferior abajo de la jerarquía.

Además, este código anterior solo funcionará actualmente para un Control dentro de un elemento primario individual. También necesitará verificar recursivamente que el padre también está en el índice z 0.

Esto funcionará para cualquier control en cualquier lugar dentro de la forma:

private bool IsControlAtFront(Control control) 
{ 
    while (control.Parent != null) 
    { 
     if (control.Parent.Controls.GetChildIndex(control) == 0) 
     { 
      control = control.Parent; 
      if (control.Parent == null) 
      { 
       return true; 
      } 
     } 
     else 
     { 
      return false; 
     } 
    } 
    return false; 
} 
Cuestiones relacionadas