0

我正在尝试使用以下代码将图像对象从一个 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”的定义,并且找不到接受“System.Windows.Forms.Form”类型的第一个参数的扩展方法“SavedImage”(您是否缺少 using 指令还是汇编参考?)

据我所知,这是正确的代码。但是我的编译器告诉我不是。我怎样才能克服这个代码?

InstanceRef 涉及到以下代码:

  private Form m_InstanceRef = null;
  public Form InstanceRef
   {
      get { return m_InstanceRef; }
      set { m_InstanceRef = value; }
   }
4

1 回答 1

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
于 2013-08-30T16:20:37.860 回答