大佬教程收集整理的这篇文章主要介绍了关于.net中使用axmschart控件editcopy方法的问题!,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
从AxMSChart复制图象到剪贴板然后再导出图片,出现错误,代码如下: AxMSChart1.EditCopy() |
我猜测可能是mschart迁移到到.net之后出现的问题,单独用editcopy没问题,用画板可以读取内存里
的图片,用Clipboard.GetImage方法也没问题,但两者在一起就有问题,我估计可能editcopy方法独
占了剪贴板(我还是不相信)?亦或者editcopy线程不安全?具体到现在我也不太清楚,反正就不能简单共存
(以前VB里就这么用的)。
我也试着从网友介绍的用单线程、提升权限角度解决问题,但都没成功。既然我发现使用完
editcopy方法后用windows自带的画板能读取,就联想到我用api函数来读取clipboard行不行呢?经过
测试后,发现果然可以,我用vb.net的代码写的过程,大家可以参考一下:
声明: Private const cF_BITMAP As Short = 2 Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Integer) As Integer Integer |
功能过程代码: Dim iBitmapPtr As Integer Dim iBitmap As System.Drawing.bitmap Me.AxMSChart1.EditCopy() messageBoxIcon.Error) Else Me.SaveFileDialog1.Filename = "" Me.SaveFileDialog1.Filter = "BMP文件(*.bR_916_11845@p)|*.bR_916_11845@p" Me.SaveFileDialog1.overwritePrompt = True If Me.SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.oK Then If System.IO.File.Exists(Me.SaveFileDialog1.FileName) = True Then System.IO.File.delete(Me.SaveFileDialog1.FileName) End If iBitmap.Save(Me.SaveFileDialog1.FileName) End If End If CloseClipboard() |
以上是大佬教程为你收集整理的关于.net中使用axmschart控件editcopy方法的问题!全部内容,希望文章能够帮你解决关于.net中使用axmschart控件editcopy方法的问题!所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。