كيفية ملء متغير في النموذج لفترة من الوقت في النموذج ب؟

StackOverflow https://stackoverflow.com/questions/20353769

  •  25-08-2022
  •  | 
  •  

سؤال

لديّ مشروع ، حيث يتم استدعاء نموذج المعالج لإجراء مشروع. في نهاية المعالج ، أريد إرسال كائن "العالم" إلى متغير في النموذج الرئيسي. ولكن إذا أعطيت النموذج الرئيسي معه من خلال المُنشئ ، فلا يمكنني الوصول إلى أساليبها أو خصائصها. أفعل شيئا خاطئا؟

ها هو رمزتي:

النموذج الرئيسي

private void newToolStripMenuItem_Click(object sender, EventArgs e)
{
    this.NewProject();
}

private void NewProject()
{
    var myForm = new ProjectWizard(this);
    myForm.Show();
}

رمز نموذج المعالج:

public ProjectWizard(Form form)
{
    InitializeComponent();
    MainForm = form;
}

private void finishButton_Click(object sender, EventArgs e)
{
    //World world = new World();
    //MainForm.CurrentWorld = world;
}

شكرا مقدما.

هل كانت مفيدة؟

المحلول

تحتاج فقط إلى صنع CurrentWorld public أو internal على ال MainForm صف دراسي. بصراحة ، أنت تفعل كل شيء آخر بشكل صحيح!

تحديث: تأكد أيضًا من أن MainForm أعلن المجال الخاص في Form1 من النوع MainForm وليس فقط Form. لذا ، قم بتغيير المُنشئ أيضًا:

public ProjectWizard(MainForm form)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top