C# 条件委托问题

C# 条件委托问题,c#,winforms,C#,Winforms,假设我打开一个表单,并希望在它关闭后附加一个命令 FormZombie FormZombie = new FormZombie(); FormZombie.Show(); FormZombie.FormClose += delegate{Utilities.DoSomethingCool()}; 如何生成实用程序。DoSomethingCool()触发器仅根据FormZombie中发生的情况执行?您可以将条件检查添加到代理中: FormZombie formZombie = new FormZ

假设我打开一个表单,并希望在它关闭后附加一个命令

FormZombie FormZombie = new FormZombie();
FormZombie.Show();
FormZombie.FormClose += delegate{Utilities.DoSomethingCool()};

如何生成实用程序。DoSomethingCool()触发器仅根据FormZombie中发生的情况执行?

您可以将条件检查添加到代理中:

FormZombie formZombie = new FormZombie(); 
formZombie.Show(); 
formZombie.FormClose += 
    delegate
    {
        if (formZombie.AteEnoughBrains)
            Utilities.DoSomethingCool();
    };

里德,如果我有两种形式的深度,我该如何实现这一点?Form1打开Form2,Form2打开Form3,Form3.Closed+=委托{method from Form1}您应该将引用传递到表单中-即:给Form1一个对您的Form1实例的引用(this),然后Form2可以将Form1实例传递到Form3中,以此类推。这样,它可以直接处理此问题。