问题是这样的,从word中(或者其他数据源)复制一部分内容(带有一定的格式,包含文本,图片,图表)到剪切板,Ctrl+C就可以复制,那么我如何用代码得到clipboard中的内容,对得到的内容进行处理,处理完后,把处理结果写回clipboard,要求格式不能乱,如何用C#代码实现。
我现在只知道能取出clipboard中,某一种类型的数据,如何能把这些数据一起取出来,格式不乱。
谁能给点思路,重谢

解决方案 »

  1.   

    http://www.chinatxh.com/kld/jsp/dd/dd/program/c-/index5/29.htm
      

  2.   

    IDataObject iData = Clipboard.GetDataObject ( ) ; 
    //检测数据是否是可以使用的格式,即文本格式 
    if ( iData.GetDataPresent ( DataFormats.Text ) ) 

    //是可以使用的格式,就在textbox2中显示剪切板中的内容 
    textBox2.Text = ( String ) iData.GetData ( DataFormats.Text ) ; 

    else 

    //如果不是 
    textBox2.Text = "没有从剪切板中接收到数据!" ; 
    } } 
      

  3.   

    Sample code as follows:
    IDataObject iData = Clipboard.GetDataObject ( ) ;
    if ( iData.GetDataPresent ( DataFormats.Rtf, true ) )
    {
    richTextBox1.Rtf = iData.GetData( DataFormats.Rtf, true ).ToString();
    }
      

  4.   

    to 对得到的内容进行处理,处理完后,把处理结果写回clipboard,要求格式不能乱,如何用C#代码实现。后续处理就比较麻烦了,你需要对rtf的格式有所了解。
    否则很难处理。
      

  5.   

    Knight94(愚翁)我这里说从word复制只是举个例子,如果是邮件内容(即包含文本也包含图像表格的话)的话,该如何处理。
      

  6.   

    to 我这里说从word复制只是举个例子,如果是邮件内容(即包含文本也包含图像表格的话)的话,该如何处理。你可以通过当前剪贴板的对象,获得其的格式,例如:
    IDataObject iData = Clipboard.GetDataObject ( ) ;
    foreach( string strFormats in iData.GetFormats() )
    {
    Debug.WriteLine( strFormats );
    }然后根据format来判断用如何的方式去读取。
      

  7.   

    各位大虾:    情况1:在Word中只复制一个图片到剪贴板。
               用下面代码:可以得到提示信息“不能粘贴图片”
                    bool image = Clipboard.ContainsImage();//image = true
        情况2:在Word中复制一个图片 + 文本 到剪贴板。
               用下面代码:
                     bool txt = Clipboard.ContainsText();//txt = true
                     bool image = Clipboard.ContainsImage();//image = false
        问题:在情况一中,可以判断出剪贴板中有图片(image = true),
              但是在情况2种,为何却不能到正确的结果(image = false)?    我现在就是想判断剪贴板中是否含有图片内容,大家帮帮忙啊。借宝地一用。多谢阿
      

  8.   

    blue_bird3000:不知道你的问题解决了没有,如果解决了的话,能不能把解决方案贴出来。学习!