Winform不包含我的方法的定义

时间:2013-08-30 16:08:32

标签: c#

我正在尝试使用以下代码将图像对象从一个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; }
   }

1 个答案:

答案 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