Question

J'ai un projet, où un formulaire d'assistant est appelé pour réaliser un projet. À la fin de l'assistant, je veux renvoyer un objet «monde» à une variable sous la forme principale. Mais si je donne la forme principale avec le constructeur, je ne peux pas accéder à ses méthodes ou propriétés. Est-ce que je fais quelque chose de mal?

Voici mon code:

forme principale

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

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

Code de formulaire de l'assistant:

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

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

Merci d'avance.

Était-ce utile?

La solution

Tu as juste besoin de faire CurrentWorld public ou internal sur le MainForm classer. Honnêtement, vous faites tout le reste!

METTRE À JOUR: Assurez-vous également que le MainForm domaine privé déclaré dans Form1 est du type MainForm Et pas seulement Form. Alors, changez aussi le constructeur une tidge:

public ProjectWizard(MainForm form)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top