RichTextBox复制一段带格式的Excel的文本内容,粘贴后一定长度后没有\t(制表符)的处理方式

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/WXW11WXW/article/details/53768488

问题应该在 richtextbox支持了RTF格式造成的,在粘贴时会直接接收复制的内容,这个内容应该会被当成RTF格式来全部接收。

你复制的内容粘贴到其他的软件中也是看不出来的



处理方式:

在入口处处理,也就是richtextbox的KeyDown事件,

代码如下:

private void wRichIn_KeyDown(object sender, KeyEventArgs e)
{
 if (e.Control && e.KeyCode == Keys.V)
 {
  IDataObject dataObj = Clipboard.GetDataObject();
  if (dataObj.GetDataPresent(DataFormats.StringFormat))
  {
   e.Handled = true; //去掉格式文本的格式 
   var txt = (string)Clipboard.GetData(DataFormats.StringFormat);
   Clipboard.Clear();
   Clipboard.SetData(DataFormats.StringFormat, txt);
   wRichIn.Paste();
  }
 }
}

主要是将剪贴板中的数据转成字符串

richtextbox的一些其他bug也不少

例如 AutoWordSelect 属性


展开阅读全文

RichtextBox 右键复制 粘贴 剪切

12-11

RichtextBox控件添加右键事件 复制 粘贴 剪切!我只能实现复制粘贴剪切文字!但是不能复制外面的图片粘贴到RichtextBox里面来,也不能从RichtextBox 里面把图片复制到外面去!请高手赐教!rn以下代码!我只能实现复制 粘贴 剪切文字!但对于操作图片就不行了,还请各位请教?如有代码也请粘贴出来参考!rn//这是复制rn private void toolStripMenuItem1_Click(object sender, EventArgs e)rn rn if (richTextBox1.SelectedText.Equals(""))rn return;rn Clipboard.SetDataObject(richTextBox1.SelectedRtf, true);rn rn//这是粘贴rn private void 粘贴ToolStripMenuItem_Click(object sender, EventArgs e)rn rn if (Clipboard.GetDataObject().GetDataPresent(DataFormats.Text))rn rn this.contextMenuStrip1.Items[0].Enabled = true;rn this.richTextBox1.Paste();rn rn elsern rn Bitmap bitmap1 = new Bitmap(Clipboard.GetImage());rnrn Clipboard.SetDataObject(bitmap1);rnrn DataFormats.Format FormatImage = DataFormats.GetFormat(DataFormats.Bitmap);rnrn if (richTextBox1.CanPaste(FormatImage))rn rnrn richTextBox1.Paste(FormatImage);rn rn rnrn rnrnrn//这是剪切rn private void 剪切ToolStripMenuItem_Click(object sender, EventArgs e)rn rn // this.richTextBox1.Cut();rn if (richTextBox1.SelectedText.Length > 0)rn rn tryrn rn this.richTextBox1.Cut();rn rn catch (Exception ex)rn rn MessageBox.Show(ex.ToString());rn rn rn rn//这是撤销rn private void 撤销ToolStripMenuItem_Click(object sender, EventArgs e)rn rn this.richTextBox1.Undo();rn rnrnrn 论坛

没有更多推荐了,返回首页