Pergunta

Eu tenho um projeto, onde um formulário de assistência é chamado para fazer um projeto. No final do mago, quero enviar um objeto de 'mundo' de volta a uma variável na forma principal. Mas se eu der o formulário principal com ele através do construtor, não posso acessar seus métodos ou propriedades. Estou fazendo algo errado?

Aqui está o meu código:

Forma principal

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

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

Código do formulário do assistente:

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

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

Desde já, obrigado.

Foi útil?

Solução

Você só precisa fazer CurrentWorld public ou internal no MainForm classe. Honestamente, você está fazendo todo o resto certo!

ATUALIZAR: também verifique se o MainForm campo privado declarado em Form1 é do tipo MainForm E não apenas Form. Então, mude o construtor para um Tidge também:

public ProjectWizard(MainForm form)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top