質問

少し問題があります。親フォームにデータテーブルがあります。 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;を使用します。モーダル形式で。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top