基于委托多窗体实现

 public partial class FrmMain : Form
 {

     public FrmMain()
     {
         InitializeComponent();
     }

     //用来保存窗体
     private List<Form> frmList = new List<Form>();

     //创建多个子窗体
     private void btnCreateChildForm_Click(object sender, EventArgs e)
     {
         for (int i = 0; i < 3; i++)
         {
             FrmChild child = new FrmChild($"子窗体:{i + 1}");
             child.Show();
             frmList.Add(child);
         }
     }

     //第4步:编写事件响应方法
     private void ReceiveMsg(string msg, string childName)
     {
         this.txtContent.Text += $"来自:{childName} 的消息:{msg}\r\n";
     }

     #region 
     //清空消息
     private void btnClear_Click(object sender, EventArgs e)
     {
         this.txtContent.Clear();
     }
     //关闭全部
     private void btnCloseAll_Click(object sender, EventArgs e)
     {
         foreach (var item in frmList)
         {
             item.Close();
         }
     }
     #endregion

     //第5步:关联事件
     private void btnAddEvent_Click(object sender, EventArgs e)
     {
         foreach (FrmChild item in frmList)
         {
           item.passMsgEvent += this.ReceiveMsg;
         }
     }
     //第5步:移除事件
     private void btnRemoveEvent_Click(object sender, EventArgs e)
     {
         foreach (FrmChild item in frmList)
         {
            item.passMsgEvent -= this.ReceiveMsg;
             //  item.passMsgEvent = null;  //这个是不行的   
            // item.passMsgEvent.invoke();//这种方式也不允许的           
         }
     }
 }

 //第1步:声明委托
 public delegate void PassMsgDelegate(string msg, string childName);

 public partial class FrmChild : Form
 {

     public FrmChild(string childName)
     {           
         InitializeComponent();
         this.Text = childName;
     }

     //第2步:定义一个事件
     public event PassMsgDelegate passMsgEvent;

     //发送消息
     private void btnSend_Click(object sender, EventArgs e)
     {
         if (passMsgEvent == null)
         {
             MessageBox.Show("请首先关联事件!","提示信息");
             return;
         }
         //第3步:激发事件(调用委托)
         passMsgEvent(this.txtSendMsg.Text, this.Text);

         //passMsgEvent.Invoke();
     }
      
 }

### 回答1: 不好意思,你的问题似乎不太明确。"c"可能是一个字母,一个单词,或者是其他的某种意思。如果你能够提供更多的背景信息或者明确你想要了解的内容,我将会尽力给你一个更准确的回答。 ### 回答2: 好的,我会用中文来回答您的问题。 C是计算机科学中的一门编程语言,它最初由美国贝尔实验室的丹尼斯·里奇(Dennis Ritchie)在1972年设计和开发。C语言是一种通用的高级编程语言,被广泛用于系统软件、嵌入式系统和应用程序开发等领域。 C语言具有简洁、高效和灵活的特点,它提供了丰富的编程工具和许多底层的操作功能,使得开发者可以更加精确地控制计算机的硬件和软件资源。C语言的语法规则相对简单,易于学习和理解,这也是它成为许多计算机科学教育领域中的第一门编程语言的原因之一。 C语言的应用范围广泛,包括操作系统、编译器、数据库系统、游戏开发和网络应用等。许多著名的软件和系统都是使用C语言开发的,比如UNIX操作系统、Linux操作系统、MySQL数据库等。 另外,C语言还衍生出了许多其他流行的编程语言,比如C++、C#和Objective-C等。这些语言基于C语言,并在其基础上添加了许多新功能和特性,以满足不同领域的需求。 总的来说,C语言在计算机科学中起着重要的作用,它是一门强大而广泛使用的编程语言,为开发者提供了丰富的工具和底层操作能力,使得他们可以更好地控制计算机资源并实现复杂的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lijingguang

有钱捧个钱场,没钱捧个人场

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值