在Form窗体中,this的应用

网友投稿 768 2022-10-16 23:20:15

在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小时内删除侵权内容。

上一篇:Netty分布式ByteBuf使用命中缓存的分配解析
下一篇:common_schema - MySQL的DBA框架
相关文章