2015-11-23 4 views
2

Je veux remplir 40 blocs de texte sur une application, ils ont tous des noms légèrement différents mais, en commun, ils se terminent par un nombre différent.For loop to Populate Textblocks

Je voudrais utiliser:

for(int i = 1; i < 41; i++) 
{ 
    textblock_(i).text = array[i].ToString(); 
} 

Est-il possible de le faire?

Merci

Répondre

2

En WPF, vous peut utiliser FindName méthode.

Tout d'abord, nous obtenons un objet par FindName (x de contrôle: Nom). Et puis le jeter dans le type de votre contrôle. Juste comme ceci:

for (int i = 1; i < 41; i++) 
{ 
    TextBlock tb = (this.FindName(string.Format("textblock_{0}", i)) as TextBlock); 
    tb.Text = array[i].ToString(); 
} 
0

Si vous utilisez Windows Forms (WinForms) puis: Control.ControlCollection.Find

Exemple:

TextBox currentTextBox = this.Controls.Find("textBox1" + i.ToString(), true).FirstOrDefault() as TextBox; 
currentTextBox.Text = array[i].ToString(); 

Ou dans WPF: How can I find WPF controls by name or type? CrimsonX de réponse

+0

Nous utilisons WPF, désolé! –

+0

puis afficher le code que comment vous ajoutez des contrôles aux fenêtres –

+0

Dans ce cas, vous devez faire un treewalk: suivez http://stackoverflow.com/questions/636383/how-can-i-find-wpf-controls-by -nom-ou-type de lien et vérifier la réponse de CrimsonX – stratever