C# 自定义事件处理

C# 自定义事件处理,c#,winforms,C#,Winforms,我有mainVariable.cs,其中包含事件的委托。我还有几个表格和一个worker.cs。我的问题是登录表单正在启动表单并处理一些事件。之后,它隐藏自己,并显示另一种形式。现在问题从这里开始,因为在登录后启动的第二个表单无法处理任何事件。我的意思是,当我从worker.cs引发一个事件时,登录表单处理该事件,而不是第二个事件,即使我处理了登录表单。如何解决这个难题?将此应用于您的程序 Application.Run(loginForm); if (login

我有mainVariable.cs,其中包含事件的委托。我还有几个表格和一个worker.cs。我的问题是登录表单正在启动表单并处理一些事件。之后,它隐藏自己,并显示另一种形式。现在问题从这里开始,因为在登录后启动的第二个表单无法处理任何事件。我的意思是,当我从worker.cs引发一个事件时,登录表单处理该事件,而不是第二个事件,即使我处理了登录表单。如何解决这个难题?

将此应用于您的程序

        Application.Run(loginForm);
        if (loginForm.IsLoggedIn == true)
        {
            ERS_FDData.ERSUser user = loginForm.user;
            loginForm.Close();
            Application.Run(new frmMain(loginForm.user));
        }
        else
            Application.Exit();

登录完成后,您需要将Mainf框架设置为应用程序默认窗口

对于要处理的任何事件,您需要为其分配一个子例程。
只要先初始化并显示它,就可以从任何窗体执行此操作

比如说

    Form1
    {
       FormLoad()
       {
           mybutton.click += new EventHandler(myfunction);
       }
       myfunction(object o, EventArgs e) { // Dostuff }
    }
所以你要初始化Form1,类似这样的东西

Form1 myform = new Form1();

事件将按表单预期工作。

请添加一些代码WPF?winforms??????WinForm但我不能共享代码,它太大太大-然后努力创建一个新的最小项目。您是否在任何地方订阅了eventhandler?如果没有方法被指定为它的eventhandler(事件调用列表中没有方法),eventhandler为null是的,在第二个表单中,formI执行了此操作,但仍然以第一个表单处理事件,因为第二个表单事件不起作用。它说我是空的。