我目前有2个WinForms.
FORMA创建的实例FormB.我调用FormB的ShowDialog()方法.
FormB定义public event Action<SomeClass, string> Analyze
当我单击FormB的ProcessEvent按钮时,我执行以下操作:
Action<SomeClass, string> tempAction = Analyze;
if (tempAction != null)
{
tempAction.Invoke(instanceOfSomeClass, someString);
}
Run Code Online (Sandbox Code Playgroud)
但是因为tempAction为null,所以不会调用该事件.
为什么它会为空?
我在FormA中以相同的方式定义事件,它们工作正常.
编辑:
我有一个订阅该活动的演示者类:
formBInstance.Analyze += StartAnalyze
Run Code Online (Sandbox Code Playgroud)
你必须签署活动.如果没有subribers Analyze将为null
FormB form = new FormB();
form.Analyze += OnAnanlyze; // define callback function
Run Code Online (Sandbox Code Playgroud)