Windows Forms, получение свойства из родительской формы
Вопрос
У меня небольшая проблема. У меня есть данные в родительской форме. Я открываю форму диалогового окна, которая получает свойство datatable и создает список флажков. Это будет использоваться для экспорта этих столбцов. Но когда я запускаю приложение, свойство parentform имеет значение null. Я попытался установить его в форме родителя и диалогового окна (я предполагал, что это было бы сделано автоматически, если бы был вызван ShowDialog ()).
Может кто-нибудь взглянуть и увидеть, где я иду не так? Из диалогового окна:
frmParent MyParentForm = (frmParent)this.ParentForm;
for (int i=0; i<MyParentForm.DataGridTable.Count; i++)
{
chkListExportItems.Add(MyParentForm.DataGrid.Columns[i].Name,true);
}
Из родительской формы:
frmExports MyForm = new frmExports();
MyForm.MdiParent = this;
if (MyForm.ShowDialog == DialogResult.OK)
{
MyForm.SelectedItems // Do something
}
Решение
Дайте ссылку на DataGridTable в форму диалогового окна. Вы можете передать это в конструкторе. Вам следует избегать использования Parent / ParentForm и избегать приведения.
Другие советы
1) " MdiParent " неправильное свойство для использования.
2) вызвать MyForm.ShowDialog (this);
3) Используйте " this.Owner " в модальной форме.