I know this is a very old thread, but I'll put the solution I know of here in case someone stumbles upon this post.
In the sendStringToExecute call, you need to set the commandEcho property (I think it's the last one) to true. That way it shows up on the commandline and will be there if enter is pushed (for repeating)
You mistunderstood the question.
The problem (one of many associated with using 'SendStringToExecute')
has always been that if a user presses ENTER afterwards, the command
that is started is not the last command the user entered, whcih is what the
user expects and what it should be. Instead, the command that runs is the
last command that was passed to SendStringToExecute(). Unfortunately
we have Autodesk people with blogs who actively promote and advocate
the use of these sorts of kludges (e.g., SendStringToExecute), and all that
ultimately does is lead to inferior solutions which those same advocates
seem to view as being 'good enough'.
The way to avoid the problem, is to avoid using SendStringToExecute()
to script AutoCAD commands.
For scripting AutoCAD commands from the application context, you can
define your own CommandMethod that P/Invokes acedCmd() (or use the
wrapper for it in my CommandLine.cs/vb files), and then you can use
SendStringToExecute() to run that CommandMethod.
That CommandMethod can be marked with the CommandFlags.NoHistory
bit, which prevents it from being re-issued if the user presses ENTER
after the call to SendStringToExecute(), and that will solve the probelm.