は、私はあなたがクリップボードにコピーした文字列が改行で終わっていることがわかります。もちろん、この新しい行は貼り付けられているので、カーソルは新しい行にあります。
何とかこの新しい行を削除する必要があります。これを行うための方法は、あなたの正確な仕様に依存します:
文字列がクリップボードにコピーされている場合は、完全な文字列は、これはあなたの仕様であれば、誰もが誰クリップボード
にコピーされますコピーした文字列は、文字列の最後に新しい行で終わります。パターがあなたがコントロールできないプログラムであれば、それについては何もできません。
別の仕様は次のようになります。文字列がクリップボードにコピーされ
場合は、新しい行を終了除くすべての可能なクリップボード
あなたは何を得るでしょう。この道にコピーされますパスタは終端の改行を見ません。しかし、この方法でクリップボード上の文字列は元の文字列ではないことに注意してください。
コード(もちろんこれは単なる小さなステップを示す、最適化することができます)
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);
私もあなたのコードのTBHの問題を再現することができませんでした。 – uTeisT
私の答えをチェックし、あなたが助けてくれたら教えてください。 – mybirthname
https://msdn.microsoft.com/library/cb3sbadh(v=vs.110).aspx *現在のStringBuilderオブジェクトの末尾に、既定の行終端文字を続けて指定した文字列のコピーを追加します。 * –