2016-10-24 17 views
0

親フォームの値セットを2番目のフォームに渡そうとしています。私は、親フォームにgetの部分を持つプロパティを作成しました。親フォームから子フォームに値を渡しますか?

Form2 secondForm = new Form2(value); 

それはすでに出形態であり、私は新しいフォーム私は値を渡したいたびに作成し維持する必要はありません:

私のような何かを行うにはしたくありません。

+0

だから、あなたの質問は何ですか? – gretro

+0

もっと説明してコードを表示する必要があります。もちろん、別のフォームに何かを与えたい場合は、単に新しいフォームを作成することはできません。そして、物事を正しく命名してください、Form2とそのような名前は問題を引き起こします。 –

+0

この質問は毎週少なくとも1回は尋ねられますか? Googleとここに例がたくさんあります。 – Badiparmagi

答えて

0

親にForm2をどのように使用するのかはわかりません(frmParentとしましょう)。とにかく次の手順のいずれかを実行できます。

子フォームのプロパティをstaticとして指定し、Form2.frmPropertyを使用してアクセスできます。

プロパティをpublicとして定義し、クラスインスタンスにアクセスすると、インスタンスが存在する限り、そのインスタンスを通じて変数にアクセスできます。

Form2 secondFormInstance = new Form2(); 
secondFormInstance.frmProperty = 10; 

// at some later points 

int childValue = secondFormInstance.frmProperty; // take value from that variable 
secondFormInstance.frmProperty++; // update the value 

また、質問で指定したように使用することもできます。

1

あなたはここにいくつかの方法があります。

だから、あなたの最初のフォームでゲッターを経由してアクセスすることができます値として

Form2 secondForm = new Form2(yourForm1); 

をあなたの最初のフォームからリファレンスを与えます。 yourForm1.MyValue;

これは少し醜いようです。インターフェイスを作成してプロパティを保持し、最初のフォームから実装する方がよいでしょうか。

public interface IValueHolder 
{ 
    public int MyValue {get;} 
} 

public class FirstForm : Form, IValueHolder 
{ 
    public int MyValue{get;} 

    //Do your form stuff 

    Form2 form = new Form2(this); 
} 

だからあなたForm2がちょうどインタフェースを取るし、Form1から独立しています。さらに、Form1からアクセスするForm2にプロパティを作成することができます。たとえば、Form1のプロパティが変更された場合は、Form2からも値を設定します。

public class Form2 : Form 
{ 
    public int MyValue{get;set;} 
} 

public class Form1 : Form 
{ 
    private int _myValue; 
    public int MyValue 
    { 
    set 
    { 
     if (_myValue != value) 
     { 
      form2.MyValue = value; 
     } 
    } 
    } 
} 

少なくとも、イベントを使用することができます。さらに、上記のようにForm1 ReferenceまたはIValueHolderを保持するForm2にPropertyを作成することができます。

これが役に立ちます。

2

この例を参照してください。

1 - Form1からパブリック文字列グローバル変数をForm1で宣言し、この変数を使用してForm1からForm2に値を渡すことができます。

See this

enter image description here

2 - 今のForm2で、Form1のオブジェクトを作成し、このオブジェクトを使用して値を取得します。

参照イメージ

enter image description here

enter image description here

関連する問題