2017-10-01 1 views
0

Je suis nouveau en C# et j'essaie d'afficher un tableau dans une zone de texte en utilisant des formulaires de fenêtres.Tableau dans une zone de texte C#

Le problème est que lorsque je donne la commande txtTela.Text = tela.ToString();, le programme compile avec succès, mais le résultat dans la zone de texte est "System.String[]", et pas la chaîne que je voudrais montrer.

Image de ce qui est imprimé dans la zone de texte: https://snag.gy/L34bfM.jpg

public String[] comboPalavra; 
    public String []tela = new String[1]; 

    public Form1() 
    { 

     InitializeComponent(); 
     comboPalavra = embaralhaPalavra.CarregaPalavra();//Recebe uma palavra e uma dica 


     //MessageBox.Show(comboPalavra[0]); 

     foreach(char element in comboPalavra[0]) 
     { 
      this.tela[0] = tela + "#"; 
     } 

     txtTela.Text = tela.ToString(); 
     txtDica.Text = comboPalavra[1].ToString(); 
    } 

Répondre

2

Vous devez convertir votre tableau de chaînes en chaîne unique. Vous pouvez le faire par string.Join().

textBox.Text = string.Join(separator, stringArray); 

ou

textBox.Text = string.Join(separator, stringArray.Select(x => x.ToString())); 
+0

Merci! Mais, j'ai essayé ceci, comme je l'ai vu dans ce post https://stackoverflow.com/questions/15659409/how-do-you-display-a-string-array-in-a-text-box, mais il n'a pas fonctionné ... –

+0

@ dev-john Montrez-moi votre chaîne.Joindre le code qui ne fonctionne pas. – krzysztofla

+0

txtTela.Text = string.Join (séparateur, tela); –

1

ou à l'expression de linq (en utilisant System.Linq):

textBox.Text =stringArray.Aggregate((x, y) => x + separator + y); 
0

Vous avez défini 'tela' en tant que tableau de chaîne et appliqué le .ToString() -method directement à cet objet-tableau, c'est pourquoi il s'est terminé en: System.String []

public String []tela = new String[1]; 
txtTela.Text = tela.ToString(); 

Pour imprimer un élément spécifique, vous devez définir l'élément que vous souhaitez imprimer:

txtTela.Text = tela[0];