Domanda

Ho un progetto, in cui viene chiamato un modulo mago per realizzare un progetto. Alla fine del mago voglio inviare un oggetto "mondo" a una variabile nella forma principale. Ma se do la forma principale con esso attraverso il costruttore, non posso accedere ai suoi metodi o proprietà. Sto facendo qualcosa di sbagliato?

Ecco il mio codice:

forma principale

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

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

Codice del modulo della procedura guidata:

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

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

Grazie in anticipo.

È stato utile?

Soluzione

Devi solo fare CurrentWorld public o internal sul MainForm classe. Onestamente, stai facendo tutto il resto giusto!

AGGIORNARE: Assicurati anche che il MainForm campo privato dichiarato in Form1 è del tipo MainForm E non solo Form. Quindi, cambia anche il costruttore a una tidge:

public ProjectWizard(MainForm form)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top