Check this link
http://stackoverflow.com/questions/3955971/retrieving-an-accurate-string-array-from-a-richtextbox-control/3956097#3956097
The catch is u need to get the firstLine and lstLine
int firstLine = richTextBox1.GetLineFromCharIndex(0);
int lastLine = richTextBox1.GetLineFromCharIndex(richTextBox1.Text.Length);
and then run a loop something like
List<string> lines = new List<string>();
for (int i = firstLine; i <= lastLine; i++)
{
int firstIndexFromLine = richTextBox1.GetFirstCharIndexFromLine(i);
int firstIndexFromNextLine = richTextBox1.GetFirstCharIndexFromLine(i + 1);
if (firstIndexFromNextLine == -1)
{
// Get character index of last character in this line:
Point pt = new Point(richTextBox1.ClientRectangle.Width, richTextBox1.GetPositionFromCharIndex(firstIndexFromLine).Y);
firstIndexFromNextLine = richTextBox1.GetCharIndexFromPosition(pt);
firstIndexFromNextLine += 1;
}
lines.Add(richTextBox1.Text.Substring(firstIndexFromLine, firstIndexFromNextLine - firstIndexFromLine));
}
Hope this will help.