我看到你複製到剪貼板中的字符串用一個新行結束。當然,這個新行被粘貼,因此你的光標在新行上。
不知何故,你必須擺脫這一新的路線。要做到這一點的方法取決於您的具體規格:
如果該字符串複製到剪貼板,完整的字符串複製到剪貼板
如果這是你的規範,那麼大家誰貼您複製的字符串將以字符串末尾的新行結束。如果貼紙是一個你無法控制的程序,你無法做任何事情。
另一個指標可以是:
如果該字符串複製到剪貼板,終止新線所有,但可能被複制到剪貼板
這樣你會得到你想要,貼紙不會看到終止的新行。但請注意,這樣剪貼板上的字符串不是原始字符串。
代碼(當然這個可以優化,只是顯示小步)
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對象的末尾,後跟默認行終止符。 * –