object oldDate = null;//保存剪切板原来的数据
if (剪切板数据 != 空)
{
    oldDate = 剪切板数据;
}剪切板数据 == 任意值;剪切板执行一些操作与转换;//这段代码 不用写出来if (oldDate == null)
{
    剪切板数据 = 空;
}
else
{
    剪切板数据 = oldDate;//且类型要与以前的类型同。
}

解决方案 »

  1.   

    参看
    http://www.syncfusion.com/faq/windowsforms/search/552.aspx
      

  2.   

    Sample code as follows:
    IDataObject oldDate = null;
    if( Clipboard.GetDataObject() != null )
    {
         oldDate = Clipboard.GetDataObject();
    }// Set clipboard data using "Clipboard.SetDataObject()"
    // Do some operation here// Return back to previous status
    Clipboard.SetDataObject( oldDate ); 
        // Determines whether the data is in a format you can use.
        if(iData.GetDataPresent(DataFormats.Text)) {
           // Yes it is, so display it in a text box.
           textBox2.Text = (String)iData.GetData(DataFormats.Text); 
        }
        else {
           // No it is not.
           textBox2.Text = "Could not retrieve data off the clipboard.";
        }
      

  3.   

    Sorry!Sample code as follows:
    IDataObject oldDate = null;
    if( Clipboard.GetDataObject() != null )
    {
    oldDate = Clipboard.GetDataObject();
    }// Set clipboard data using "Clipboard.SetDataObject()"
    // Do some operation here// Return back to previous status
    Clipboard.SetDataObject( oldDate );
      

  4.   

    谢谢 Knight94(愚翁)!我先去试验一下!
      

  5.   

    to:Knight94(愚翁) 不行的,当剪切板有数据时,就会出错,不行你试试
      

  6.   

    我用在MapX中把图像传入剪切版。
    这段代码你先随便复制一些东西到剪切版,然后再执行,你就会发现错误。
    主要是这一句:Clipboard.SetDataObject( oldDate );//只要oldDate不为null就会出错!
      

  7.   

    to Clipboard.SetDataObject( oldDate );//只要oldDate不为null就会出错!我试过,没有出现你所说的问题!
      

  8.   

    To:Knight94(愚翁)
    我的哪一些代码需要MapX才能运行,明天,我写一段纯净代码再来探讨
      

  9.   

    To:Knight94(愚翁)
    纯净代码如下:
                方法1:
                //IDataObject kk = null;
                //Clipboard.SetDataObject(kk);  //出现异常
                方法2:
                IDataObject idd = Clipboard.GetDataObject();//在剪切板有数据的情况下执行
                Clipboard.Clear();
                Clipboard.SetDataObject(idd);//剪切板变成无数据了
    由此可知,你上面的解决办法是错误的,无论剪切板有无数据均不行。
    期待更好的解答!
      

  10.   

    没有什么问题,我试了一下IDataObject oldDate = null;
    if( Clipboard.GetDataObject() != null )
    {
    oldDate = Clipboard.GetDataObject();
    }// Clear clipboard content
    DataObject kk = new DataObject( );
    Clipboard.SetDataObject( kk );// Return back to previous status
    Clipboard.SetDataObject( oldDate );
      

  11.   


                //IDataObject kk = null;
                //Clipboard.SetDataObject(kk);  //出现异常
                方法2:
                IDataObject idd = Clipboard.GetDataObject();//在剪切板有数据的情况下执行
                Clipboard.Clear();
                Clipboard.SetDataObject(idd);//剪切板变成无数据了大哥,你在好好试试,肯定是你的问题
      

  12.   

    to "Clipboard.Clear();"vs2005?
      

  13.   

    第一种方法是可以的,我的环境是vs2003,代码如下(前面也贴过):IDataObject oldDate = null;
    if( Clipboard.GetDataObject() != null )
    {
    oldDate = Clipboard.GetDataObject();
    }// Clear clipboard content
    DataObject kk = new DataObject( );//Use an empty object to clear clip board
    Clipboard.SetDataObject( kk );// Return back to previous status
    Clipboard.SetDataObject( oldDate );