WinForm 两窗体间传值实例

背景:窗体Form1和Form2 Form2由Form1打开(1、模式窗体 2、非模式)
要求:Form2的TextBox值传回Form1的TextBox中

情况一:(模式窗体)Form1 .ShowDialog() 打开Form2

 

Form1:   
 public partial class Form1 : Form   
   {   
       public Form1()   
       {   
           InitializeComponent();   
       }   
  
       private void button1_Click(object sender, EventArgs e)   
       {   
           Form2 frm = new Form2(this,textBox1.Text);//带参数构造Form2(此方法该处带俩参数构造多余)   
         
           if (frm.ShowDialog() == DialogResult.OK)   
           {   
               this.textBox1.Text += frm.ReturnText;//通过Form2的属性获得回传值   
           }   
           frm = null;   
              
       }   
          
   Form2:   
    public partial class Form2 : Form   
   {   
       private Form1 pfrm;   
       private string frm1txt;   
       public Form2(Form1 parentfrm,string frm1text)   
       {   
           InitializeComponent();   
           pfrm = parentfrm;   
           frm1txt = frm1text;   
       }   
              public string ReturnText//回传值的属性   
       {   
           get { return this.frm1txt; }   
       }   
         private void button2_Click(object sender, EventArgs e)//给属性赋值并关闭模式窗体Form2   
       {   
           frm1txt = this.textBox2.Text;   
           this.DialogResult = DialogResult.OK;//*必加 模式窗体打开后 只有DialogResult初始化后才可继续操作 否则值无法传回   
           this.Close();//模式窗体关闭.close()相当于将窗体隐藏 彻底关闭需要用.Dispose()   
       }   
  
       private void button3_Click(object sender, EventArgs e)//关闭   
       {   
           this.DialogResult = DialogResult.Cancel;//同*   
           this.Close();   
       }  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值