Per legare una label alla rispettiva textbox potresti, ad esempio, impostare la proprietà Tag di entrambe sullo stesso numero, quindi cercare fra le Label quella che ha lo stesso Tag della TextBox. Oppure puoi inserire ogni coppia Label - TextBox in un Panel (ma non te lo consiglio) così hai solo due controlli per contenitore, o ancora puoi usare un Dictionary<TextBox, Label> per racchiudere ogni coppia TextBox - Label.
Ti scrivo un'esempio della prima possibilità, che mi sembra la migliore:
Font normal, altered;
private void textBoxes_Enter(object sender, EventArgs e)
{
//Ottiene la textbox che ha generato l'evento
TextBox sndr = sender as TextBox;
//Cicla fra tutti i controlli della Form
foreach (Control c in Controls)
{
//Prende solo le label
if (c as Label == null)
continue;
//Se la label e la textbox hanno lo stesso Tag, sono associate
if (c.Tag == sndr.Tag)
{
c.Font = altered;
}
}
}
private void textBoxes_Leave(object sender, EventArgs e)
{
//Ottiene la textbox che ha generato l'evento
TextBox sndr = sender as TextBox;
//Cicla fra tutti i controlli della Form
foreach (Control c in Controls)
{
//Prende solo le label
if (c as Label == null)
continue;
//Se la label e la textbox hanno lo stesso Tag, sono associate
if (c.Tag == sndr.Tag)
{
c.Font = normal;
}
}
}
Luca