2008-10-31 15 views
5

Estoy teniendo un pequeño problema. Tengo una tabla de datos en el formulario principal. Abro un formulario de cuadro de diálogo que obtiene la propiedad de tabla de datos y crea una lista de casilla de verificación. Esto se usará para exportar esas columnas. Pero cuando ejecuto la aplicación, la propiedad parentform es nula. Intenté configurarlo en el formulario principal y en el cuadro de diálogo (supuse que esto se habría hecho automágicamente si se hubiera llamado a ShowDialog()).Windows Forms, obteniendo una propiedad del formulario principal

¿Puede alguien echar un vistazo y ver dónde me está yendo mal? Desde la caja de diálogo:

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

De la forma del padre:

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

Respuesta

3

dar una referencia a la DataGridTable a su forma de caja de diálogo. Puede pasarlo en el constructor. Debe evitar el uso de Parent/ParentForm y evitar la conversión.

3

1) "MdiParent" es una propiedad incorrecta de usar.

2) Llamar a MyForm.ShowDialog (this);

3) Utilice "this.Owner" en la forma modal.

+0

¿Puedes elaborar esto con un ejemplo? –

Cuestiones relacionadas