繁体   English   中英

从另一个C#应用程序发出运行C#函数的问题

[英]Issue running C# function from another C# application

我有一个C#Windows窗体,其中包含一个名为automation的函数。 然后我有一个C#控制台应用程序,我试图用来调用Windows窗体的功能。 我已经创建了参考文献并且已经达到了这个目的:

Form1 FormInstance = new Form1();
FormInstance.automation += new EventHandler(?);

我的问题是,我试图添加一些我的问号,但我继续收到错误。 如果我这样设置:

FormInstance.automation += new EventHandler(NewHandler);

我得到“NewHandler”在当前上下文中不存在。

如果我创造

public void NewHandler(object sender, EventArgs e)

我得到非静态字段,方法或属性需要一个对象引用。

我无法弄清楚我做错了什么。

它应该是object.NewHandler ,如果在成员方法的上下文中发生,则object可能是this 你可以原谅这一点,因为大多数成员引用都是隐式的,但这个必须是显式的。

在高层次它的工作原理如下:

public static void Main(string[] args)
{
    Form x = new Form();
    x.Method = new EventHandler(MyHandler);
}

public static void MyHandler(object sender, EventArgs e)
{
   // Stuff
}

看起来你没有使用static关键字标记你的方法(如果通过像控制台main这样的静态方法调用它)。 您还需要确保为事件分配适当的委托; 即您的方法中的automation需要能够接受EventHandler委托。

最简单的方法是使事件处理程序方法保持静态

public static void NewHandler(object sender, EventArgs e) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM