2011-01-10 23 views
0

フォーム間の通信は、.netの代理人などを使用してコンストラクタを使用して行うことができますが、私の質問は、親フォームから子フォームに入力された値にアクセスする方法、 Windowsフォーム間で可能です。フォーム間の通信

+2

あなたの質問は曖昧かつ不明です。 – SLaks

答えて

7

親フォームからアクセスできるプロパティとして、子フォームの値を指定します。

など。

using (var form = new ChildForm()) 
{ 
    form.SomeValue = "abc"; 
    if (form.ShowDialog(this) == DialogResult.OK) 
    { 
     var x = form.SomeValue; 
    } 
} 

このブロックを親フォームで使用して、子フォームとの間で値を渡します。

子フォームでは、SomeValueプロパティは、 a TextBox

public string SomeValue 
{ 
    get { return MyTextBox.Text.Trim(); } 
    set { MyTextBox.Text = value; } 
} 
+1

このプロパティは、クラスのユーザーがプロパティがどのように機能するかという仮定に違反します。主に、それを設定して取得すると、同じ値にする必要があります。あなたの場合、それは当てはまらないかもしれません。多分大したことではなく、心に留めておくべきことです。 – Bryan

+0

'Trim()'を参照しています。重大な状況では、トリム()を行います。 –

+1

はい、それは私が話していることです。私はちょうど 'Trim()'を 'value'に追加すべきだと思います。しかし、もちろん、それを行うなら、最初にnullをチェックする必要があります。 – Bryan