7

少し問題があります。親フォームにデータテーブルがあります。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
}
4

2 に答える 2

4

ダイアログボックスフォームへのDataGridTableへの参照を指定します。コンストラクターで渡すことができます。Parent / ParentFormの使用は避け、キャストは避けてください。

于 2008-10-31T10:23:53.167 に答える
4

1) 「MdiParent」は、使用するプロパティとして不適切です。

2) MyForm.ShowDialog(this); を呼び出します。

3) モーダル フォームで「this.Owner」を使用します。

于 2008-10-31T10:41:54.800 に答える