• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

从0自学C#06–多窗体共用对象

c# 搞代码 4年前 (2022-01-09) 22次浏览 已收录 0个评论

上一篇介绍了通过委托事件的方式,实现了子窗体调用父窗体的控件。本文将用参数传递的方式,实现共用一个实体对象。

本文所用的代码,也是在上一篇基础上做修改。

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                    {                 <a>本文来源gao($daima.com搞@代@#码(网</a>       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–多窗体共用对象的内容,更多相关内容请关注搞代码(www.gaodaima.com)!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:从0自学C#06–多窗体共用对象

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址