With TerminalControl, NewLineSequence is CR, LocalEcho On, lines sent are overwritten by the response. How to avoid?

0 votes
asked Mar 2, 2015 by aldebaran (120 points)

With TerminalControl, when I set NewLineSequence to CR and LocalEcho On, the line I send is overwritten by the response. CR means carrige return, so this is kind of right, but my protocol uses CR only and I cannot add LF to the communication.

How can I add the missing LF to the local echo?

1 Answer

0 votes
answered Mar 2, 2015 by Pavel Matyska (13,300 points)

Hello, you can handle KeyPress event and write the LF to the terminal screen in that handler.

Here is how the code could look like:

// register KeyPress event handler, 
// probably in the constructor of the form
terminal.KeyPress += new KeyPressEventHandler(terminal_KeyPress);

void terminal_KeyPress(object sender, KeyPressEventArgs e)
{
    // if the pressed character is CR, write end of line
    // to the terminal screen
    if (e.KeyChar == '\r')
        terminal.Screen.WriteLine();
}

You can use KeyDown event in a similar way and use e.KeyCode to determine if the Enter was pressed.

...