2017-06-07 17 views
-2

タイトルにエラーが表示され続けていますが、フォームが読み取り専用に設定されているか、これを無効にします。プロパティまたはインデクサ 'Form.MdiChildren'を割り当てることができません - 読み込み専用です

private void studentToolStripMenuItem1_Click_1(object sender, EventArgs e) 
     { 
      addStudent newStudentForm = new addStudent(this); 
      newStudentForm.MdiChildren = this; 
      newStudentForm.Show(); 
     } 

addStudent学生を作成し、メインフォーム上に保持され、学生のリストを取り込むの世話をする形です。私はMdiを使用している理由Form2からForm1のデータを編集できるようにしたい

誰でも私はこのエラーを修正するために探している必要があります探している必要がありますヒントを教えてください?

EDIT:あなたはMdiChildrenを設定する必要はありません

Form1 = Parent 

Form2 = Child 
+2

。親ではなく子を設定します。 –

答えて

1

MdiChildrenは、ダイアログのMdiチャイルドである現在のフォームを表す単なる配列です。親にMDI子をロードする必要があります。このような

何か:あなたはちょうど後方それを見ている

addStudent newStudentForm = new addStudent(); 
newStudentForm.MdiParent = this; 
newStudentForm.Show(); 
0

明確にすること。さらに、読み取り専用ではなくても、このように設定することはできません。フォームではなくフォームの集まりです。

論理的には、「newStudentFormには現在のフォームがMDI子としてあります」ということを伝えようとすると、実際には「newStudentFormはこのMDIの新しい子です」が必要です。

あなたがする必要がある唯一の事は、あなたの子フォームでMdiParentを設定することです:

private void studentToolStripMenuItem1_Click_1(object sender, EventArgs e) 
{ 
    AddStudent newStudentForm = new AddStudent(this); 
    newStudentForm.MdiParent = this; 
    newStudentForm.Show(); 
} 

P.S.クラスには適切な名前を付けてください。それはaddStudentではなく、AddStudentとなるはずです。この1文字はコードを完全に読むことができません。

関連する問題