why modifiedtext.Length is equal to 20 and not 16 (=11+5) after to run the block of code in the following example (attached code)
Here is the example of the richTextBox1 before added tab space at the begining of the line of each line in the richTextBox1: INPUT RICHTEXTBOX:
abc
dfg
1
OUTPUT RICHTEXBOX:
abc
dfg
1
OUTPUT CONSOLE:
selstart : 0
sellength : 11
selstart2: 5
sellength2: 20
tab space.Length: 1
lines.Length: 5
private void button_click0001(object sender, EventArgs e)
{
int selstart = richTextBox1.SelectionStart;
int sellength = richTextBox1.SelectionLength;
Console.WriteLine("selstart : " + selstart ); //OUTPUT:0
Console.WriteLine("sellength : " + sellength ); //OUTPUT:11
string[] lines = richTextBox1.SelectedText.Split('\n');
for (int i = 0; i < lines.Length; i++)
{
lines[i] = "\t" + lines[i];
}
string modifiedtext = string.Join(Environment.NewLine, lines);
richTextBox1.SelectedText = modifiedText;
int selstart2 = selstart + ("\t".Length * lines.Length);
int sellength2 = modifiedText.Length;
Console.WriteLine("selstart2: " + selstart2); //OUTPUT: 5
Console.WriteLine("sellength2: " + sellength2); //OUTPUT: 20
Console.WriteLine("tab space.Length: " + "\t".Length); //OUTPUT:1
Console.WriteLine("lines.Length: " + lines.Length); //OUTPUT:5
richTextBox1.Select(selstart2 , sellength2);
}