2016-08-17 3 views
0

ダイアログを表示しようとすると問題が発生します。パラメータフォームにthis引数を渡すと、空です。私は何ダイアログボックスとして開くとC#winformsが空のフォームを返します

:私はデフォルトのコンストラクタを呼び出すと、コンストラクタ

public partial class GroupAdd : Form 
    { 
     private GrupeForm grupeForm; 

     public GroupAdd() 
     { 
      InitializeComponent(); 
     } 

     public GroupAdd(GrupeForm groups) { 
      grupeForm = groups; 
     } 
    } 

経由GroupsForm.csを注入しようとGroupAdd.cs形で

private void addGrupuBtn_Click(object sender, EventArgs e) 
    { 
     using (var add = new GroupAdd(this)) 
     { 
      add.ShowDialog(); 
     } 
    } 

:私は、このメソッドを作成し、私のGroupsForm.cs形で

thisフォーム内のすべてのコントロールが再表示されません。

この作業は問題ありません。

using (var add = new GroupAdd()) 
+0

2番目のコンストラクタでは、InitializeComponentが明示的に呼び出されません。 – Andreas

答えて

2

コンストラクタにInitializeComponent()と電話するのを忘れてしまったため、動作しません。

はこれにあなたのコードを変更します。

public GroupAdd(GrupeForm groups) { 
     grupeForm = groups; 
     InitializeComponent(); 
    } 
+0

私はそれのための別のコンストラクタを持っています。コンポーネントを初期化するデフォルトのcostructorが最初です。 – Ivan

+1

はい、デフォルトコンストラクタを呼び出さないため、コンポーネントは初期化されません。 –

+0

投票しないでください。大丈夫ですか?私はslovedとしてマークします – Ivan

3

あなたはあなたのコントロールを初期化するだけでなく、パラメータなし(デフォルト)ctorのを呼び出す必要があります。

public GroupAdd(GrupeForm groups) 
    : this() 
{ 
    grupeForm = groups; 
} 
関連する問題