2

我在将文本复制到剪贴板时遇到了奇怪的问题。我想从带有其他格式的文本框中复制文本。为了做到这一点,我拦截了文本框上的 KeyDown 事件,并检查是否按下了键 CTRL 和 C。然后我就那样做

 string extraFormatedText = formatText(txtBox.Text);
 Clipboard.SetText(extraFormatedText, TextDataFormat.Text);

函数 formatText 在文本中添加了几个空的附加行。但是,如果我将此文本粘贴到记事本中,则没有其他格式。这是为什么 ??

如果我调用函数Clipboard.GetText(),我可以清楚地看到返回的字符串中有额外的字符(\n \r)。

4

2 回答 2

1

\r表示回车符和\n换行符换行符)。

该方法formatText必须将这些添加到字符串的末尾。

此外,记事本程序没有粗体或斜体等格式化功能,它只是以所选字体、大小和样式显示所有内容。

于 2011-02-14T22:03:32.303 回答
1

如果您仅添加 \n 以插入新行,记事本将无法理解,因为它期望 \r\n 作为换行符。尝试将您的文本粘贴到 Notepad++ 中,您会发现实际上存在换行符。

使用 Environment.NewLine 会更安全,它在 Windows 上会准确地为您提供 \r\n。

于 2011-04-29T03:16:53.487 回答