有两个windows窗体,form1和form2,form2中有一个TextBox,form1是母窗体,现在想在form2退出的时候,将TextBox中的值传回到form1怎么处理呀?

解决方案 »

  1.   

    private void btnCondition_Click(object sender, System.EventArgs e)
    {
    this.Cursor = Cursors.WaitCursor;

    K103011 frm = new K103011();

    // [ K103010 ]の条件プロパティにセットされている値を、[ K103011 ]の条件プロパティにセットする。
    frm.Ym_Object = this.ym_object; // 対象年月
    frm.Cd_Tenkai_Grp = this.cd_tenkai_grp; // 展開グループ

    // 画面を中間表示する
    frm.StartPosition = FormStartPosition.Manual;
    frm.Top = ( Screen.PrimaryScreen.WorkingArea.Height - frm.Height ) / 2;
    frm.Left = ( Screen.PrimaryScreen.WorkingArea.Width - frm.Width ) / 2;

    // 画面を表示する
    frm.ShowDialog(this);

    // [ K103011 ]で「OK」ボタンがクリックされた場合には
    if (frm.Status == true)
    {
    // [ K103011 ]にセットされた条件プロパティの値を受取り
    this.ym_object = frm.Ym_Object; // 対象年月
    this.cd_tenkai_grp = frm.Cd_Tenkai_Grp; // 展開グループ this.setSpreadList(this.fpSpreadList, this.fpSpreadList.Sheets[0]);
    } //フォーカス位置設定
    this.fpSpreadList.Focus(); //マウスポインタ設定
    this.Cursor = Cursors.Default;
    }
      

  2.   

    /// 対象年月
    /// </summary>
    private string ym_object; /// <summary>
    /// 展開グループ
    /// </summary>
    private string cd_tenkai_grp; private bool RetValue = false; //条件設定フラグ /// <summary>
    /// 対象年月
    /// </summary>
    public string Ym_Object
    {
    get
    {
    return this.ym_object;
    }
    set
    {
    ym_object = value;
    }
    } /// <summary>
    /// 展開グループ
    /// </summary>
    public string Cd_Tenkai_Grp
    {
    get
    {
    return this.cd_tenkai_grp;
    }
    set
    {
    cd_tenkai_grp = value;
    }
    } /// <summary>
    /// 条件されて画面が閉じられたかを判断するフラグです。
    /// </summary>
    public bool Status
    {
    get
    {
    return this.RetValue;
    }
    set
    {
    this.RetValue = bool.Parse(value.ToString());
    }
    }
    #endregion public K103011()
    {
    //
    // Windows フォーム デザイナ サポートに必要です。
    //
    InitializeComponent(); //
    // TODO: InitializeComponent 呼び出しの後に、コンストラクタ コードを追加してください。
    //
    } /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void btnOK_Click(object sender, System.EventArgs e)
    {
    //画面に入力された条件をプロパティにセット
    this.ym_object = this.txtYM_OBJECT.Text.Trim();
    this.cd_tenkai_grp = this.cboCD_TENKAI_GRP.Text.Trim(); // 画面のフラグを設定する
    this.RetValue = true;

    // 画面をクロスする
    Close();
    }
      

  3.   

    窗体之间传值,最好的方法就是用构造函数。窗体Fr_zspzd:
    private void button7_Click(object sender, System.EventArgs e)
    {
    Fr_zspzd zspzd=new Fr_zspzd(this.dataSet11,this.myToolbar1);
    zspzd.Show();
    }窗体Fr_zspzd:
    public class Fr_zspzd : System.Windows.Forms.Form
    {
    DataSet ds1=null;
    myBaseForm.myToolbar myToolbar1;
                      ...........
              public Fr_zspzd(DataSet ds,myBaseForm.myToolbar myToolbar)  //构造函数
    {
    ds1=ds;
    myToolbar1=myToolbar;   //把传递的信息保存下来
                                ........
                       }
              private void Fr_zspzd_Load(object sender, System.EventArgs e)
    {
                                //函数中就可以使用了
                                //传递的值是和第一个页面是同步的
                       }
      

  4.   

    form1:
    public string str = "";form2关闭前:
    form1 m = new form1();
    m = (form1)this.owner;
    m.str = textbox的值;
      

  5.   

    以上是winform的,如果是webform,最好还是用session或者cookie.
      

  6.   

    private void button5_Click(object sender, System.EventArgs e)
    {
    WindowsApplication1.Form2 f2 = new Form2();
    f2.MdiParent=this;
    f2.Show();
    }//-----------------------------------------------
    public class Form2 : System.Windows.Forms.Form
    {
    private Form1 fm1;
    public Form1 Fm1
    {
    get{return fm1;}
    set{fm1=value;}
    }
    用属性传
      

  7.   

    别忘了把form2中的TextBox  设为共有的public
      

  8.   

    在退出前事件拦截,写回form1就可以了
      

  9.   

    上面; lyb_abiandbel(渴望成为高手) 写的太好了,真实高手啊!