Windowsフォーム、親フォームからプロパティを取得
質問
少し問題があります。親フォームにデータテーブルがあります。 datatableプロパティを取得し、checkboxlistを作成するダイアログボックスフォームを開きます。これは、これらの列をエクスポートするために使用されます。しかし、アプリケーションを実行すると、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)&quot; MdiParent&quot;使用するプロパティが間違っています。
2)MyForm.ShowDialog(this)を呼び出す;
3)&quot; this.Owner&quot;を使用します。モーダル形式で。
所属していません StackOverflow