Windows Forms, получение свойства из родительской формы

StackOverflow https://stackoverflow.com/questions/253038

Вопрос

У меня небольшая проблема. У меня есть данные в родительской форме. Я открываю форму диалогового окна, которая получает свойство 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 " в модальной форме.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top