上一篇介绍了通过委托事件的方式,实现了子窗体调用父窗体的控件。本文将用参数传递的方式,实现共用一个实体对象。
本文所用的代码,也是在上一篇基础上做修改。
1.父窗体
将共用实体对象innoBERT作为子窗体构造函数的参数。代码如下“修改此行”部分。
if (subFormPPGTx[i] == null || subFormPPGTx[i].IsDisposed) { subFormPPGTx[i] = new SubFormPPG(innoBERT, i);//修改此行 subFormPPGTx[i].Text = formTitle; subFormPPGTx[i].Name = formName; //subFormPPGTx[i].Tag = i; subFormPPGTx[i].SendToParent += new SubFormPPG.SendFun(RecvInfo); subFormPPGTx[i].Show(this); } else { subFormPPGTx[i].WindowState = FormWindowState.Normal; subFormPPGTx[i].Activate(); }
2.子窗体
首先定义一个类字段,然后修改子窗体的构造函数,添加参数,用于接收父窗体传递的实体对象。这样就可以在子窗体里,调用实体对象innoBERT。
InnolightBERT innolightBERT;bool formStatus = false;private int ID;public delegate void SendFun(int number);public event SendFun SendToParent;public SubFormPPG(InnolightBERT innoBERT, int ID){ InitializeComponent(); this.innolightBERT = innoBERT;//接收对象 this.ID = ID;}
3.应用
子窗体调用共用实体对象的属性。
private void SubFormPPG_Load(object sender, EventArgs e){ this.GetPPGSetting(this.ID);}private void GetPPGSetting(int channel){ try { switch (channel) { case 0: this.comboBoxSwing.SelectedIndex = (int)innolightBERT.Tx1_Swing; break; case 1: this.comboBoxSwing.SelectedIndex = (int)innolightBERT.Tx2_Swing; break; case 2: this.comboBoxSwing.SelectedIndex = (int)innolightBERT.Tx3_Swing; break; case 3: this.comboBoxSwing.SelectedIndex = (int)innolightBERT.Tx4_Swing; break; default: return; } } catch (Exception ex) { MessageBox.Show(ex.Message); }}
以上就是 从0自学C#06–多窗体共用对象的内容,更多相关内容请关注PHP中文网(www.php.cn)!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1432062.html
微信扫一扫
支付宝扫一扫