日期:2014-05-17  浏览次数:21109 次

从剪切板中读取Metafile类型图片,读不出来

 private void button2_Click(object sender, EventArgs e)
        {
            Metafile metafile;//定义图形-图元文件
            Picture.Picture x = new Picture.Picture();//利用matlab生成的类
            x.pictureTest01();//生成图象,并复制在剪切板上
            IDataObject iData = Clipboard.GetDataObject();//从剪切板获取数据
            if (iData.GetDataPresent(DataFormats.MetafilePict))
            {
                object o = iData.GetData(DataFormats.MetafilePict);
                metafile = (Metafile)o;
                this.pictureBox1.Image = metafile;
            }
        }


代码如上所示。主要作用是利用matlab生成图象,并把图象copy在剪切板上,然后winform窗体从剪切板上读取该图象,并在GroupBox中显示出来。
我现在的问题是当 if 为真时,却无法获取到剪切板上的图元文件。即object o = iData.GetData(DataFormats.MetafilePict);时,o 总是为Null,请问各位朋友,这是什么原因?

------解决方案--------------------
你先尝试在外部粘贴(例如WINDOWS画图板),看看能否获取图片,不排除你在设置剪贴板数据时就出的问题。