用RichTextBox控件做了个文本编辑器,现在想要实现插入文件功能,但是richtextbox.appendtext方法是在最后追加,不是插入。我想是要先将文件读到剪贴板里,然后richtextbox.paste(),这样就完成插入了。问题是怎样将text、RTF和图片文件读到剪贴板里?

解决方案 »

  1.   

    怎样读取文件放入剪贴板?比如读一个TXT文件:
    StreamReader sr = new StreamReader("\aa.txt");//路径省略
    Clipboard.SetDataObject(sr);
    richTextBox1.Paste();
    上面的代码有问题,Clipboard.SetDataObject里要怎样写?
      

  2.   

    if (openFile.ShowDialog() == DialogResult.OK)//从打开文件对话框中获取图片路径
                {
                    IDataObject data = Clipboard.GetDataObject();//获取剪切板内容
                    Bitmap bmp = (Bitmap)Bitmap.FromFile(openFile.FileName);//将图片存入Bitmap对象
                    Clipboard.SetData(DataFormats.Bitmap, bmp);//将剪切板内容设为图片
                    richTextBox1.Paste();//粘贴
                    Clipboard.SetDataObject(data, true);//恢复剪切板内容
                }
      

  3.   

    那么TXT文件和RichTextBox的RTF文件怎样读到剪贴板里?
      

  4.   

    RichTextBox里面本身就是RTF格式的文本,你可以参考下RTF格式,然后重新设置RichTextBox里的rtf文本
      

  5.   

    我问的是插入,用RichTextBox.loadfile方法导入RTF文件会将原来RichTextBox控件中的内容都覆盖掉
      

  6.   

    有人知道吗,怎样插入RTF文件内容?
      

  7.   

    不是loadfile,你分析下RTF格式,然后抽取出原来rtx里面的RTF文档,把你要的东西加到里面去,再重新设置rtx的Rtf.你去看下rtx有个Rtf属性的.
      

  8.   

    去codeproject下个ExRichTextBox,它能完成的功能比你还高级多了,包括你要多插入
    其实都自己做也是可以的,RichTextBox有个属性Rtf,你读出来组装好再赋回去就是了
    String S=richTextBox1.Rtf;
    S="你要加的文字的Rtf格式文本"+S;
    richTextBox1.Rtf=S;