Chiamare DataBindings.Clear () su più, controlli con nomi simili
Domanda
originaly postato un po 'indietro su un forum diverso, spero di poter trovare un po' di più aiuto qui:)
Ciao ragazzi,
Sono sicuro che questa è una domanda piuttosto semplice, ma io sono nuovo a molto la programmazione e C #. Trovo ho bisogno di cancellare DataBindings su diversi controlli e attualmente sono:
lblTableValue1.DataBindings.Clear();
lblTableValue2.DataBindings.Clear();
lblTableValue3.DataBindings.Clear();
lblTableValue4.DataBindings.Clear();
lblTableValue5.DataBindings.Clear();
lblTableValue6.DataBindings.Clear();
lblTableValue7.DataBindings.Clear();
Questo non può essere il miglior modo di fare questo si può? Ho anche bisogno di impostare tutti questi valori di testo a "", posso raggrupparli in qualche modo e chiamare chiaro su tutto il gruppo?
Molte grazie in anticipo G
Soluzione
foreach(Control c in this.Controls)
{
if(c.Name.StartsWith("lblTableValue"))
{
c.DataBindings.Clear();
}
}
Che potrebbe fare il lavoro. Oppure, se siete più di un purista:
foreach(Control c in new Control[]
{
lblTableValue1,
lblTableValue2,
etc
})
{
c.DataBindings.Clear();
}
Altri suggerimenti
In questo tipo di scenario, lo trovo meglio includere i controlli che voglio per manipolare, in una sorta di contenitore, per esempio un pannello. Poi iterazione diventa facile:
private void SetLabelText()
{
foreach (Control c in Panel1.Controls)
{
if (c is Label && c.ID.StartsWith("lblTableValue"))
{
Label lbl = c as Label;
lbl.Text = string.Empty;
lbl.DataBindings.Clear();
}
}
}