我正在尝试使用以下代码将图像对象从一个winform传递到另一个winform。
在我的第一个winform中,我把它放在了班级的顶端:
public Image SavedImage
{
get { return PictureBox.Image; }
set { PictureBox.Image = value; }
}
在我的第一个winform的初始化程序中,我有以下代码:
public ControlPanel(Image savedImage)
{
InitializeComponent();
_screenCapture = new ScreenCapture();
_screenCapture.OnUpdateStatus += _screen_CapOnUpdateStatus;
SavedImage= savedImage;
}
然后在我的第二个winform中,我将该图像对象传递回我的第一个winform,如下所示:
this.InstanceRef.SavedImage = savedImageObject;
this.InstanceRef.Show();
this.Close();
但是,当我运行此代码时,我收到以下错误:
'System.Windows.Forms.Form'不包含'SavedImage'的定义,并且没有扩展方法'SavedImage'接受类型'System.Windows.Forms.Form'的第一个参数可以找到(你错过了吗?) using指令或程序集引用?)
据我所知,这是正确的代码。但我的编译器告诉我它不是。我怎样才能克服这段代码?
InstanceRef涉及以下代码:
private Form m_InstanceRef = null;
public Form InstanceRef
{
get { return m_InstanceRef; }
set { m_InstanceRef = value; }
}
答案 0 :(得分:3)
假设您为表单类YourFormClass
命名,SavedImage
实际定义了YourFormClass
:
((YourFormClass)this.InstanceRef).SavedImage = savedImageObject;
或者您可以重新定义InstanceRef
属性,如下所示:
private YourFormClass m_InstanceRef = null;
public YourFormClass InstanceRef {
get { return m_InstanceRef; }
set { m_InstanceRef = value; }
}
//Then you don't need to cast InstanceRef to YourFormClass