2008-10-31 7 views
5

Je rencontre un problème. J'ai une datatable dans le formulaire parent. J'ouvre un formulaire de boîte de dialogue qui obtient la propriété datatable et crée une checkboxlist. Cela sera utilisé pour exporter ces colonnes. Mais quand j'exécute l'application, la propriété parent est null. J'ai essayé de le placer dans la forme de parent et de boîte de dialogue (j'ai supposé que ceci aurait été fait automagically si ShowDialog() a été appelé). Est-ce que quelqu'un peut jeter un coup d'oeil et voir où je me trompe? De l'DialogBox:Windows Forms, obtention d'une propriété du formulaire parent

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

De la forme mère:

frmExports MyForm = new frmExports(); 
MyForm.MdiParent = this; 
if (MyForm.ShowDialog == DialogResult.OK) 
{ 
    MyForm.SelectedItems // Do something 
} 

Répondre

3

Donnez une référence à la DataGridTable à votre formulaire DialogBox. Vous pouvez le passer dans le constructeur. Vous devriez éviter d'utiliser Parent/ParentForm et éviter de lancer.

3

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

2) Appelez MyForm.ShowDialog (this);

3) Utilisez "this.Owner" dans la forme modale.

+0

pouvez-vous élaborer ceci avec l'exemple? –

Questions connexes