公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C#delegate(委托)實現(xiàn)主窗體與子窗體數(shù)據(jù)交互

admin
2025年3月17日 14:39 本文熱度 623
主窗體接收子窗體消息?

1、聲明委托,要放在類的外面,在主窗體還是子窗體聲明都可以;

2、根據(jù)委托編寫具體方法(在調(diào)用的類中寫);

3、創(chuàng)建委托變量(誰使用誰創(chuàng)建,即發(fā)送方);

4、關(guān)聯(lián)具體方法(委托變量和具體方法關(guān)聯(lián))(在調(diào)用的類中緊跟著對象的類寫);

 左邊是第3步delegate聲明的委托變量,右邊是第2步編寫的方法

5、使用委托變量調(diào)用關(guān)聯(lián)的方法(在哪里使用,在哪里寫,即和委托變量在一個類中)。

 即用第3步的委托變量替換第2步的方法名稱,并傳遞具體參數(shù)

主窗體向子窗體發(fā)送消息

1、聲明委托,要放在類的外面,在主窗體還是子窗體聲明都可以;

2、編寫具體方法;

3、創(chuàng)建委托變量(那里使用那里定義);

4、關(guān)聯(lián)具體方法(委托變量和具體方法關(guān)聯(lián))(在調(diào)用的類中緊跟著對象的類寫);

 左邊是第3步delegate聲明的委托變量,右邊是第2步編寫的方法

5、使用委托變量調(diào)用關(guān)聯(lián)的方法。

 即用第3步的委托變量替換第2步的方法名稱,并傳遞具體參數(shù)


 創(chuàng)建一個子窗體FrmChild
代碼如下

namespace _003_基于Delegate實現(xiàn)窗體間信息交互

{

    public partial class FrmChild : Form

    {

        public FrmChild(string childName)

        {           

            InitializeComponent();

            this.Text += childName;//子窗體名稱后

        }

        #region 主窗體接收子窗體消息

        //【主窗體接收子窗體消息****】3-創(chuàng)建委托變量(誰使用誰創(chuàng)建,即發(fā)送方)

        public delRecMsg Recmsg;


        private void btSend_Click(object sender, EventArgs e)

        {

            //【主窗體接收子窗體消息****】5-使用委托變量調(diào)用關(guān)聯(lián)的方法(在哪里使用,在哪里寫,即和委托變量在一個類中)

            //這里面?zhèn)鞯淖兞肯喈?dāng)于使用delSendMsg(string msg,string childName)

            Recmsg(this.txtChildSendMsg.Text.Trim(), this.Text);

        }

        #endregion


        #region 主窗體向子窗體發(fā)送消息

        //【****主窗體向子窗體發(fā)送消息】2-編寫具體方法

        public void PassMsg(string msg)

        {

            this.txtChildRecMsg.Text = msg;

        }

        #endregion

    }

}

主窗體
代碼如下

namespace _003_基于Delegate實現(xiàn)窗體間信息交互

{

    //子窗體向主窗體發(fā)送數(shù)據(jù),主窗體接收數(shù)據(jù),在主窗體中可以通過delSendMsg方法實現(xiàn)信息接收,

    //但是子窗體不能直接訪問delSendMsg方法,且子窗體的信息不能直接給到msg,所以需要通過委托的方式來實現(xiàn)

    //【主窗體接收子窗體消息****】1-聲明委托,要放在類的外面,在主窗體還是子窗體聲明都可以

    public delegate void delRecMsg(string Recmsg,string childName);

    //【****主窗體向子窗體發(fā)送消息】1-聲明委托,要放在類的外面,在主窗體還是子窗體聲明都可以

    public delegate void delSendMsg(string Sendmsg);


    public partial class FrmMain : Form

    {

        public FrmMain()

        {

            InitializeComponent();

        }

        #region 主窗體接收子窗體消息        

        //【主窗體接收子窗體消息****】2-根據(jù)委托編寫具體方法(在調(diào)用的類中寫)

        private void ShowMsg(string msg,string childName)

        {

            this.txtMainRecieveMsg.Text += $"{childName}的消息:{msg}\r\n";//回車換行

        }

        private void btFrmChild_Click(object sender, EventArgs e)

        {


            for (int i = 1; i < 4; i++)

            {

                FrmChild frmChild = new FrmChild($"這是第{i}個子窗體");//創(chuàng)建子窗體時給子窗體添加標(biāo)題

                frmChild.Show();

                //【主窗體接收子窗體消息****】4-關(guān)聯(lián)具體方法(委托變量和具體方法關(guān)聯(lián))(在調(diào)用的類中緊跟著對象的類寫)

                //將委托變量的與方法進(jìn)行關(guān)聯(lián),左邊是委托變量,右邊是方法            

                frmChild.Recmsg += ShowMsg;

                //【****主窗體向子窗體發(fā)送消息】4-關(guān)聯(lián)具體方法(委托變量和具體方法關(guān)聯(lián))(在調(diào)用的類中緊跟著對象的類寫)

                SendMsg += frmChild.PassMsg;

                //每次創(chuàng)建窗體時把窗體加到list集合中

                this.list.Add(frmChild);

            }           

        }

        #endregion


        #region 主窗體向子窗體發(fā)送消息

        //【****主窗體向子窗體發(fā)送消息】3-創(chuàng)建委托變量(那里使用那里定義)

        private delSendMsg SendMsg;

        private void btMainSend_Click(object sender, EventArgs e)

        {

            //【****主窗體向子窗體發(fā)送消息】5-使用委托變量

            //相當(dāng)于調(diào)用子窗體的PassMsg方法

            SendMsg(this.txtMainSendMsg.Text);

        }

        #endregion


        private void btClear_Click(object sender, EventArgs e)

        {

            this.txtMainRecieveMsg.Clear();

            this.txtMainSendMsg.Clear();

        }

        //創(chuàng)建集合存放子窗體

        private List<Form> list=new List<Form>();

        private void btCloseChild_Click(object sender, EventArgs e)

        {

            foreach (Form frm in list)

            {

                frm.Close();

            }

        }

    }

}


該文章在 2025/3/17 14:54:06 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊、財務(wù)費(fèi)用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产尤物av尤物 | 国产精品高潮呻吟久久av旡码 | av在线有码人 | 福利视频一区二区三区 | 国产无套无码aⅴ在线观看 国产无套在线播放 | 国产在线高清伦片a | 91国内直播在线观看免费 | 成人无码精品一区 | 国产精品观看无码不卡视频 | 国产在线无码不卡播孜 | 国产精品无码翘臀在线观看 | 2025国产精品成人免费视频 | 加勒比精品久久一区二区三区 | 国产精品免费无遮挡无码永久视 | 国产成人手机视频 | 国产成人综合亚洲欧美在线 | 国产一区免 | 妓女妓女一区二区三区在线观 | 911精品国产91久久久久 | 成人欧美一区二区三区在线 | 国产一级毛片精品完 | 国产精品一区二区三区01 | 国产三级a三级三级 | 成人无码免费午夜福利在线看片 | 国产极品高清在线播放 | 国产av人人夜夜澡人人爽 | 国产一区二区福利 | 丰满人妻一区二区三区免费视频 | 国产一级亚洲视频在线观看 | 国产亚洲成人精品久久久久无码av | 国产精品欧美亚洲日本久久 | 精品久久久久久性色av | 国产尤物在线观看无码不卡 | 精品国产欧美一区二区 | 高潮视频免费观看 | 国产av精品一区二区三区视频 | 国产av无遮挡喷水白浆网站 | 精品国产欧美精品v | 国产精品伦视频 | 国产精品特级毛片一区二区三区 | 911无码在线精 |