Windows Forms, recebendo uma propriedade de formulário pai
Pergunta
Eu estou tendo um pouco de um problema. Eu tenho uma tabela de dados no formulário pai. Eu abro uma forma dialogbox que obtém a propriedade tabela de dados e cria um checkboxlist. Isso será usado para exportar essas colunas. Mas quando eu executar o aplicativo a propriedade ParentForm é nulo. Eu tentei definindo-o no formulário pai e dialogbox (eu assumi isso teria sido feito automagicamente se ShowDialog () foi chamado).
Alguém pode dar uma olhada e ver onde eu estou indo errado? Do dialogbox:
frmParent MyParentForm = (frmParent)this.ParentForm;
for (int i=0; i<MyParentForm.DataGridTable.Count; i++)
{
chkListExportItems.Add(MyParentForm.DataGrid.Columns[i].Name,true);
}
A partir do formulário pai:
frmExports MyForm = new frmExports();
MyForm.MdiParent = this;
if (MyForm.ShowDialog == DialogResult.OK)
{
MyForm.SelectedItems // Do something
}
Solução
Dê uma referência ao DataGridTable ao seu formulário dialogbox. Você pode passá-lo no construtor. Você deve evitar usar Parent ParentForm e evitar fundição /.
Outras dicas
1) "MdiParent" é a propriedade errada para uso.
2) Chamada MyForm.ShowDialog (this);
3) Use "this.Owner" na forma modal.