why in the richTextBox the length of string.Join(Environment.NewLine, lines) is equal to 20 after to add tab in the following example (attached code)

57 views Asked by At

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); 
}
0

There are 0 answers