これは共通の問題、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()。}}
二つの方法の実現の結果が同じであるまあ、それは個人の好みに依存します!