【问题标题】:How to Paste text with images from clipboard like Microsoft Word do C#?如何使用剪贴板中的图像粘贴文本,如 Microsoft Word do C#?
【发布时间】:2014-01-31 18:01:28
【问题描述】:

我想知道如何像 Microsoft Word 那样粘贴剪贴板的内容,我的意思是,例如,如果我想复制以下内容:

Some text 
*some image*
More text

并像我复制文本时一样粘贴它,并在文本之间添加图像,我该怎么做?

我尝试使用 HTML 格式粘贴富文本框,但仍然一无所获... 到目前为止,我只能粘贴没有格式的文本或带有标签的 HTML 文本也没有格式...

顺便问一下,有没有办法覆盖文本框的 Ctrl + V 粘贴方法?

谢谢

编辑:我正在开发 WinForms

【问题讨论】:

  • 您要将它们粘贴到哪里以及出于什么目的?您能否详细说明您的应用程序的用途。
  • 因为我正在编写一个烹饪食谱程序,而我的客户希望能够像在 Microsoft Word 上那样复制和粘贴带有图像的文本。我只需要与 microsoft word 相同的粘贴方法..

标签: c# winforms text copy paste


【解决方案1】:

至于第一个问题,我不相信你可以用 RichTextBox 做到这一点。您可以单独粘贴图像,或者如果您从网站复制文本和图像,则可以仅粘贴文本。但不幸的是,它不会同时粘贴两者。

这是以前的SO post,其中一些建议被丢弃了。


至于另一个问题,如果您想覆盖 CTRL+V 功能,您必须订阅 KeyDownKeyPress 事件:

 private bool IsPressedCtrlV = false;

 private void textBox1_KeyDown(object sender, KeyEventArgs e)
 {
     // You have access to modifiers in here, so you can detect the Control key
     IsPressedCtrlV = (e.Modifiers == Keys.Control && e.KeyCode == Keys.V);
 }

 private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
 {
     if (IsPressedCtrlV)
     {
         // When the key "press" is complete, handle ctrl-v however you want
         e.Handled = true;
         MessageBox.Show("No pasting allowed!");
     }
 }

【讨论】:

    【解决方案2】:

    如果您可以通过复制粘贴看到 RichTextBox 中显示的图像,那么您可以通过以下代码执行相同的操作:

    myRichTextBox.Rtf = Clipboard.GetText(TextDataFormat.Rtf);
    

    简单步骤,将 RichTextBox 的 Rtf 属性设置为您从剪贴板中获取的 Rtf 格式值。

    【讨论】:

      猜你喜欢
      • 2013-07-08
      • 2010-11-10
      • 2017-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2015-03-09
      相关资源
      最近更新 更多