Ajouter une nouvelle ligne de données à la TextBox

Je fais un client de discussion et, actuellement, j’ai un bouton qui permet d’afficher les données dans une zone de texte multiligne lorsque vous cliquez dessus. Est-ce la seule façon d’append des données à la zone de texte multiligne? Je pense que cela est extrêmement inefficace, parce que si la conversation devient très longue, la chaîne le sera aussi.

private void button1_Click(object sender, EventArgs e) { ssortingng sent = chatBox.Text; displayBox.Text += sent + "\r\n"; } 

Si vous utilisez WinForms:

Utilisez la AppendText(myTxt) sur la TextBox place (.net 3.5+):

  private void button1_Click(object sender, EventArgs e) { ssortingng sent = chatBox.Text; displayBox.AppendText(sent); displayBox.AppendText(Environment.NewLine); } 

Le texte en lui-même a généralement une faible empreinte mémoire (vous pouvez en dire beaucoup dans les f.ex. 10ko, ce qui n’est “rien”). La zone de texte ne restitue pas tout le texte contenu dans la mémoire tampon, mais uniquement la partie visible. Vous n’avez donc pas à vous inquiéter du décalage. Les opérations les plus lentes insèrent du texte. L’ajout de texte est relativement rapide.

Si vous avez besoin d’une gestion plus complexe du contenu, vous pouvez utiliser SsortingngBuilder combiné avec la zone de texte. Cela vous donnera un moyen très efficace de gérer le texte.

Voici les moyens

  1. À partir du code (comme vous l’avez mentionné) ->

     displayBox.Text += sent + "\r\n"; 

    ou

     displayBox.Text += sent + Environment.NewLine; 
  2. De l’interface utilisateur
    a) WPF

     Set TextWrapping="Wrap" and AcceptsReturn="True" 

    Appuyez sur la touche Entrée pour accéder à la zone de texte et une nouvelle ligne sera créée.

    b) Zone de texte Winform

     Set TextBox.MultiLine and TextBox.AcceptsReturn to true 

Parce que vous n’avez pas spécifié le type d’interface frontale (technologie graphique) que vous utilisez, il serait difficile de faire une recommandation spécifique. Dans WPF, vous pouvez créer une zone de liste et append pour chaque nouvelle ligne de discussion un nouvel élément de liste à la fin de la collection. Ce lien fournit des suggestions sur la manière d’obtenir le même résultat dans un environnement winforms.

Je trouve que cette méthode économise beaucoup de frappe et évite beaucoup de fautes de frappe.

chaîne nl = “\ r \ n”;

txtOutput.Text = “Première ligne” + nl + “Deuxième ligne” + nl + “Troisième ligne”;

C # – serialData est ReceivedEventHandler dans TextBox .

 SerialPort sData = sender as SerialPort; ssortingng recvData = sData.ReadLine(); serialData.Invoke(new Action(() => serialData.Text = Ssortingng.Concat(recvData))); 

Maintenant, Visual Studio supprime mes lignes. TextBox, bien sûr, avait toutes les options correctes sur.

En série:

 Serial.print(rnd); Serial.( '\n' ); //carriage return