Windows Forms, получение свойства из родительской формы - PullRequest
5 голосов
/ 31 октября 2008

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

Ответы [ 2 ]

3 голосов
/ 31 октября 2008

1) "MdiParent" - неправильное свойство для использования.

2) Вызов MyForm.ShowDialog (this);

3) Используйте "this.Owner" в модальной форме.

3 голосов
/ 31 октября 2008

Дайте ссылку на DataGridTable в форме диалогового окна. Вы можете передать это в конструкторе. Вам следует избегать использования Parent / ParentForm и избегать приведения.

...