C#の親は、サブフォームの間の値を渡します

これは共通の問題、Baiduはあまりにも多くの方法である、と私は正しいか間違っている話すことはありません。ただ、最もシンプルかつ簡単な方法を紹介したいと思います

ここでは、2つの方法があります。

  1、引数なし

   2、参照

前提:

  1、関係なく、メソッドが呼び出される伝統的な価値観を形成し、間にどのような方法で、制御機能など、最初の修飾子は次のように設定されていない必要があります公開

  2、新しい親、子二つの形式

    メインフォームメイン:

 

 

   サブフォームの子供:

 

 

 

まず、引数なし(ほとんどの人がこれを使用したいです)

少しだけ紹介:Ownerプロパティ、VS説明:このフォームを所有するフォームを取得または設定し    、それは読書や修正をサポートしていることを種の人気の格言、ために、。

背後にある主なコード:

名前空間MainChild 
{ 
    パブリック部分クラスメイン:をForm1 
    { 
        公共のmain()
        { 
            のInitializeComponent(); 
        } 
        /// <まとめ> 
        ///値が呼び出された
        </要約> /// 
        パブリック文字列callStrは {  {戻りGET callTxt.Textを.trim();}  SET = {callTxt.Textの値;}}プライベート無効ChildFrmBtn_Click(オブジェクト送信者、EventArgsのE)= {新しい新しい子供子供子供(); //所有者の感覚、公式の説明は:取得または設定し、このウィンドウを持っていますchild.Ownerこの本体形= ; child.Show();}}}

後ろの子コード:

名前空間MainChild 
{ 
    パブリック部分クラスの子供:をForm1 
    { 
        /// <まとめ> 
        ///メインフォームが定義
        </要約> ///         主主; 
        公共子供() {  のInitializeComponent();  }  /// <まとめ>  / //親フォームの値を取得 /// </要約>  /// <PARAM NAME = "SENDER"> </ param>の /// <PARAM NAME = "E"> </ param>の プライベート無効GetCallBtn_Click(オブジェクトの送信者、のEventArgs E) {  //インスタンス化:取得フォームメインフォーム メイン=(メイン)この

            .Owner; GetCallTxt.Text = main.callStr;} /// <まとめ> ///親形態/// </要約> /// <PARAMの値を設定名= "送信元"> </ PARAM> // / <PARAM NAME = "E"> </ PARAM>プライベートボイドModifyBtn_Click(オブジェクト送信者のEventArgs E){//インスタンス化:メインフォームを取得=この(メイン)メインフォーム.Ownerと、main.callStr = ModifyTxt.Text.Trim();}}}

シンプルなバー、コード、業績の2行を読んで、サブフォームを設定します。

 

 第二に、参照がある(それは言うことができるコンストラクタですが、私は個人的にハハ、このコードを使用するように少ないです!)

    フォームは、基準質量ことを除いて、同じに設定されています

Main.cs

公共部分クラスメイン:フォーム
    { 
        公共のmain()
        { 
            のInitializeComponent(); 
        } 
        /// <要約> 
        ///被调用的值
        /// </要約> 
        パブリックストリングcallStr 
        { 
            取得{戻り)(callTxt.Text.Trimします。}  集合{callTxt.Text = 値。}  } 
 プライベート無効ChildFrmBtn_Click(オブジェクト送信者、EventArgsの電子){子子=新しい子(この); //这里この child.Show(); }}

必要に述べた構造に参照が存在しないパラメータは、質量参加の取得とは異なり

Child.cs

パーシャルクラス公開子供:Form1の
    { 
        /// <まとめ> 
        ///主フォーム定義
        /// </要約>         メイン主; 
        公共子(メインFRM)
        { 
            のInitializeComponent(); 
            メイン= FRM; //これは得ることですパラメータ }  /// <要約>  ///は、親フォームの値を取得 </要約> ///  /// <PARAM NAME = "SENDER"> </ PARAM>  /// <PARAM NAME = "E"> < / param>の プライベートボイドGetCallBtn_Click(オブジェクト送信者のEventArgs E) {  GetCallTxt.Text =
main.callStr; } /// <要約> ///设置父窗体值/// </要約> /// <PARAM NAME = "送信元"> </ PARAM> /// <PARAM NAME = "E"> </ PARAM>プライベートボイドModifyBtn_Click(オブジェクト送信者、のEventArgs電子){main.callStr = ModifyTxt.Text.Trim()。}}

   二つの方法の実現の結果が同じであるまあ、それは個人の好みに依存します!

おすすめ

転載: www.cnblogs.com/Craft001wen/p/11505156.html