visual tutorial studio open net mdiparent ismdicontainer formularios form ejemplos child application abrir windows forms parent mdi children

windows - tutorial - open form in mdi parent vb net



Windows Forms, obteniendo una propiedad del formulario principal (2)

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 ()).

¿Alguien puede echar un vistazo y ver dónde me estoy equivocando? Desde el cuadro 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 principal:

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


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

2) Llamar a MyForm.ShowDialog (esto);

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


Da una referencia a DataGridTable a tu formulario de cuadro de diálogo. Puede pasarlo en el constructor. Debe evitar el uso de Parent / ParentForm y evitar el casting.