c# winform 窗体间的传值

1.父窗体传值给子窗体:

1)

  父窗体:

1  FrmXX frm = new FrmXX(1,0);
2  frm.Owner = this;
3  frm.ShowDialog();

子窗体:

1    int type, index = 0;      
2         public FrmXX(int ty,int ind)
3         {
4             InitializeComponent();
5             type = ty;
6             index = ind;
7         }

2)适用于多个父窗体调用一个子窗体

  父窗体:

1            FrmXX frm = new FrmXX();
2             frm.data = sum;
3             frm.id = id;
4             frm.ShowDialog();

子窗体:

 1    public string data { get; set; }
 2    public string id { get; set; }
 3 
 4   private void FrmXX_Load(object sender, EventArgs e)
 5         {
 6            10         }
11 }

数据更新:

1    private void Renovate()
2         {
3             FrmXX frm = new FrmXX();
4             frm = (FrmXX)this.Owner;
5             frm.BindDgv();  //BindDgv是父窗体绑定dgv中的数据,
6         }
 1  private void btnSearch_Click(object sender, EventArgs e)
 2        
 3               ...数据增删改代码
 4                 if (res.Success) {
 5                     Renovate();
 6                     this.Close();
 7                 }
 8             else
 9             {
10                     Utility.Error("添加失败:" + res.ErrMsg);
11                 }

2.子窗体传值给父窗体

1)父窗体:

 1  private void pb_wharehouse_Click(object sender, EventArgs e)
 2         {
 3             Frm仓库查询 frm = new Frm仓库查询();
 4             frm.P_Value+= frm_E_Value;
 5             frm.ShowDialog();
 6         }
 7         void frm_E_Value(string value)
 8         {
 9             txt_wharehouse.Text = value;  //从子窗体传过来的值
10         }

子窗体:

1   public delegate void T_Value(String value);
2   public event T_Value E_Value;
3   private void btn_selected_Click(object sender, EventArgs e)
4         {
5              E_Value(this.txt_lx.Text);
6             this.Close();
7 
8       }

 2)父窗体:

1             FrmXX f = new FrmXX();
2             if (f.ShowDialog() == DialogResult.OK)
3             {
4                 string s=f.value;//f.value是从子窗体获取的值
5             }

子窗体:

1  public static string value;//全局变量
2  private void btnSelects_Click(object sender, EventArgs e)
3         { 
5             value= txtvalue.Text;
this.close();
6 }
原文地址:https://www.cnblogs.com/bonnie-w/p/7371974.html