Ich sehe, dass die Zeichenfolge, die Sie in die Zwischenablage kopieren mit einer neuen Zeile endet. Natürlich wird diese neue Zeile eingefügt und der Cursor befindet sich in der neuen Zeile.
Irgendwie müssen Sie diese neue Linie loswerden. Die Methode, dies zu tun, hängt von Ihren genauen Spezifikationen:
Wenn die Zeichenfolge in die Zwischenablage kopiert wird, wird der gesamte String in die Zwischenablage kopiert wird
Wenn dies Ihre Spezifikation ist, dann jeder, Pasten Ihre kopierte Zeichenfolge endet mit der neuen Zeile am Ende der Zeichenfolge. Wenn der Paster ein Programm ist, das Sie nicht steuern können, können Sie nichts dagegen tun.
könnte eine andere Spezifikation sein:
Wenn die Zeichenfolge in die Zwischenablage kopiert wird, werden alle, aber eine mögliche neue Linie endet in die Zwischenablage kopiert wird
So kann man was bekommen Sie wollen, Passer werden die abschließende neue Zeile nicht sehen. Beachten Sie jedoch, dass die Zeichenfolge in der Zwischenablage nicht die ursprüngliche Zeichenfolge ist.
-Code (natürlich kann diese optimiert werden, nur kleine Schritte zeigt)
StringBuilder sbItems = FillStringBuilder(...);
// before copying, remove a possible new line character
// for this we use property System.Environment.NewLine
var stringToCopyToClipboard = sbItems.ToString();
if (stringToCopyToClipboard.EndsWith(Environment.NewLine)
{
int newLineIndex = stringToCopyToClipboard.LastIndexOf(Environment.NewLine);
stringToCopyToClipboard = stringToCopyToClipboard.Substring(0, newLineIndex);
}
Clipboard.SetText(stringToCopyToClipboard);
ich nicht einmal das Problem mit Ihrem Code TBH reproduzieren konnten. – uTeisT
Überprüfen Sie meine Antwort und sagen Sie mir, ob Sie geholfen haben. – mybirthname
Dies ist wie dokumentiert https://msdn.microsoft.com/library/cb3sbadh(v=vs.110).aspx * Hängt eine Kopie der angegebenen Zeichenfolge gefolgt vom Standard-Zeilenabschlusszeichen an das Ende des aktuellen StringBuilder-Objekts an. * –