2010-07-21 11 views

risposta

7

se si vuole solo sapere che controllano è nella parte anteriore di una collezione genitore, basta fare il seguente:

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

Si noti che il Z-Index è il controllo cima più, maggiore è il numero, inferiore in basso nella gerarchia.

Inoltre, questo codice al momento funzionerà solo per un controllo all'interno di un singolo genitore. Dovrà anche verificare in modo ricorsivo che il genitore sia a z-index 0.

Questo funziona per qualsiasi controllo in qualsiasi punto all'interno del Modulo:

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; 
} 
Problemi correlati