Question

J'ai un petit problème. J'ai un datatable dans le formulaire parent. J'ouvre un formulaire de boîte de dialogue qui récupère la propriété datatable et crée une liste de cases à cocher. Cela sera utilisé pour exporter ces colonnes. Mais lorsque j'exécute l'application, la propriété de parentform est null. J'ai essayé de le définir sous les formes parent et boîte de dialogue (j'ai supposé que cela aurait été fait automatiquement si ShowDialog () était appelé).

Quelqu'un peut-il jeter un coup d'œil et voir où je me trompe? Dans la boîte de dialogue:

frmParent MyParentForm = (frmParent)this.ParentForm;
for (int i=0; i<MyParentForm.DataGridTable.Count; i++)
{
   chkListExportItems.Add(MyParentForm.DataGrid.Columns[i].Name,true);
}

À partir du formulaire parent:

frmExports MyForm = new frmExports();
MyForm.MdiParent = this;
if (MyForm.ShowDialog == DialogResult.OK)
{
   MyForm.SelectedItems // Do something
}
Était-ce utile?

La solution

Donnez une référence à la DataGridTable à votre formulaire de boîte de dialogue. Vous pouvez le transmettre au constructeur. Vous devez éviter d'utiliser Parent / ParentForm et éviter le casting.

Autres conseils

1) "MdiParent" est la mauvaise propriété à utiliser.

2) Appelez MyForm.ShowDialog (this);

3) Utilisez "this.Owner". sous forme modale.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top