Ilham Nasution Ilham Nasution - 2 months ago 50
C# Question

How to remove lines one by one in Richtextbox C#

I use this code to delete lines one by one in richtextbox, but still leaving an empty line (whitespace).

var text = "";//Holds the text of current line being looped.
var startindex = 0;//The position where selection starts.
var endindex = 0;//The length of selection.

for (int i = 0; i < richtextbox1.Lines.Length; i++)//Loops through each line of text in RichTextBox
{
text = richtextbox1.Lines[i]; //Stores current line of text.

startindex = richtextbox1.GetFirstCharIndexFromLine(i);
endindex = text.Length;
richtextbox1.Select(startindex, endindex);
MessageBox.Show(richtextbox1.SelectedText);
richtextbox1.SelectedText = "";
}


How do I delete lines one by one without empty lines (whitespace)?

Answer
// Gets the number of newline characters in your rich text box
var numberOfNewLines = richTextBox1.Text.Count(r => r == '\n');

for (var i = 0; i < numberOfNewLines; i++)
{
     // Finds the first occurance of the newline character
     var newlineCharacterIndex = richTextBox1.Text.IndexOf('\n') + 1;

     // Replaces the rich textbox text with everything but the above line
     richTextBox1.Text = richTextBox1.Text.Substring(newlineCharacterIndex);

     MessageBox.Show("OK!");
}

// Removes the final line.
richTextBox1.Text = string.Empty;

I think you were on the right track, but the way you were doing it was just removing the contents of the line and not the line itself.

Comments