Epicor10-Image.Save方法

时间:2016-02-02 22:21:52

标签: c# erp epicorerp

我正在尝试在Epicor 10中构建一个自定义窗口。 我添加了一个图片框,只是尝试从文件打开图片(bmp),然后用另一个按钮将其保存在其他地方。 问题是在Epicor 10的自定义工具对话框中,我在编译时编写代码,我不断收到此错误:

Error: CS1061 - line 258 (953) - 'object' does not contain a definition for 'Save' and no extension method 'Save' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)
 ** Compile Failed. **

现在,当我复制代码并使用Visual Studio 2012重新创建一个Windows窗体应用程序时,一切正常,编译完全没有错误。

代码非常简单:

private void epiButtonC6_Click(object sender, System.EventArgs args)
{
    var fd = new SaveFileDialog();
        fd.Filter = "Bmp(*.Bmp)|*.bmp;| Jpg(*Jpg)|*.jpg;| Png(*Png)|*.png";
        fd.AddExtension = true;

        if (fd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            switch (Path.GetExtension(fd.FileName).ToUpper())
            {
                case ".BMP":                        
                    epiPictureBoxC1.Image.Save(fd.FileName, System.Drawing.Imaging.ImageFormat.Bmp);
                    break;
                case ".JPG":
                    epiPictureBoxC1.Image.Save(fd.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
                    break;
                case ".PNG":
                    epiPictureBoxC1.Image.Save(fd.FileName, System.Drawing.Imaging.ImageFormat.Png);
                    break;
                default:
                    break;
            }
        }       
}

1 个答案:

答案 0 :(得分:0)

EpiPictureBox不是从System.Windows.Forms.PictureBox派生的。它源自Infragistics.Win.UltraWinEditors.UltraPictureBox。

System.Windows.Forms.PictureBox 上的Image属性属于 System.Drawing.Image ,其中 Infragistics.Win.UltraWinEditors的Image属性.UltraPictureBox System.Object 。这就是为什么事情没有像你期望的那样表现的原因。

我能够通过使用以下工作来获得一个模型,只要你确定分配给epiPictureBoxC1.Image的proptery的任何内容确实可以被转换为系统。 Drawing.Image

switch (Path.GetExtension(fd.FileName).ToUpper())
        {
            case ".BMP":                        
                ((System.Drawing.Image)epiPictureBoxC1.Image).Save(fd.FileName, System.Drawing.Imaging.ImageFormat.Bmp);
                break;
            case ".JPG":
                ((System.Drawing.Image)epiPictureBoxC1.Image).Save(fd.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
                break;
            case ".PNG":
                ((System.Drawing.Image)epiPictureBoxC1.Image).Save(fd.FileName, System.Drawing.Imaging.ImageFormat.Png);
                break;
            default:
                break;
        }