[英]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.