App 2.0开发模式的行业看法
768
2022-10-16
在Form窗体中,this的应用
背景:
在BHHT_Bill界面中:
属性:public string vsBZ = string.Empty;//用来接收弹出界面修改的值某函数AA中的代码:BHGL.BHHT.BHZX bhzx = new BHGL.BHHT.BHZX();bhzx.ShowDialog();MessageBox.Show("某某操作成功!");
在BHZX界面中:
某函数BB中的代码:BHHT_Bill bill = new BHHT_Bill();bill.vsBZ = this.txtBZ.Text;//备注this.Close();
在BHHT_Bill界面中:
public string vsBZ = string.Empty;//用来接收弹出界面修改的值某函数AA中的代码:BHGL.BHHT.BHZX bhzx = new BHGL.BHHT.BHZX();bhzx.bill = this;//传递窗体自身,而不是新的窗体bhzx.ShowDialog();
在BHZX界面中:
变量属性:public BHHT_Bill bill;某函数BB中的代码:bill.vsBZ = this.txtBZ.Text;//备注this.Close();
小注:
通过传递窗体自身,而不是新的窗体,可以实现ShowDialog()界面之间的传值(循环调用)。
最佳实践:
由this(即循环调用)来实现这种功能,其实可以通过一种更为简单、易懂的方式来实现。
代码如下:
在BHHT_Bill界面中:
BHGL.BHHT.BHZX bhzx = new BHGL.BHHT.BHZX(); bhzx.ShowDialog();string vsTxtBZ = bhzx.psBZ;bhzx = null;//注意清空
在BHZX界面中:
变量属性:public string psBZ = string.Empty;某函数中的代码:psBZ = this.txtBZ.Text;
其实,Form之间传参最好的方法是:委托
具体可以参考:通过IL分析C#中的委托、事件、Func、Action、Predicate之间的区别与联系
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。