2013-08-30 11 views
0

Я пытаюсь передать объект изображения из одного 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' does not contain a definition for 'SavedImage' and no extension method 'SavedImage' accepting a first argument of type 'System.Windows.Forms.Form' could be found (are you missing a using directive or an assembly reference?)

Насколько я могу судить, это правильный код. Но мой компилятор говорит мне, что это не так. Как я могу преодолеть этот код?

InstanceRef относится к следующему коду:

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

Что такое 'InstanceRef'? –

+0

Экземпляр экземпляра - это get и set для моей формы. Я поставлю код сейчас. – Sean

ответ

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 
+0

Эй, у меня на самом деле уже есть этот код в моем проекте. Спасибо, но проблема все еще сохраняется. – Sean

+0

Как я использую две winforms, вы предлагаете YourFormClass на самом деле моя первая winform? Я смущен вашими именами. – Sean

+0

@Sean Да, что такое имя класса вашей первой формы? Например, обычно у нас есть имена по умолчанию 'Form1',' Form2', ... –

Смежные вопросы