C# 创建事件处理程序的问题
嘿,我对使用事件处理程序和诸如此类的东西还不熟悉,但我在使用它时遇到了一些问题 这在我的命名空间中:C# 创建事件处理程序的问题,c#,events,event-handling,handlers,C#,Events,Event Handling,Handlers,嘿,我对使用事件处理程序和诸如此类的东西还不熟悉,但我在使用它时遇到了一些问题 这在我的命名空间中: public delegate void buttonChange(object sender, EventArgs e); 这是main之前的表单: public static event buttonChange eventButtonChange; 那么我主要有: buttonChangeListener listener = new buttonChangeListener(); e
public delegate void buttonChange(object sender, EventArgs e);
这是main之前的表单:
public static event buttonChange eventButtonChange;
那么我主要有:
buttonChangeListener listener = new buttonChangeListener();
eventButtonChange += new buttonChange(buttonChangeNeeded);
然后是一个程序:
void buttonChangeNeeded(object sender, buttonChangeArgs e)
{
// The Program has moved a state forward
switch (e.TheNumber)
{
case 1:
// Probe has been purged
this.SetBtnAutoCycle1(true);
break;
case 2:
//First Auto-Cycle Complete
this.SetBtnPerf(true);
break;
case 3:
//Performance Test Complete
this.SetBtnAutoCycle2(true);
break;
case 4:
//Second Auto-Cycle Complete
this.SetBtnReport(true);
break;
default:
break;
}
最后是一个单独的类:
public class buttonChangeArgs : EventArgs
{
public readonly int TheNumber;
public buttonChangeArgs(int num)
{
TheNumber = num;
}
}
public class buttonChangeListener
{
public void changeTheButton(object o, buttonChangeArgs e)
{
Console.WriteLine(
"The button should move down too: {0}",
e.TheNumber);
}
}
老实说,我已经看过一系列教程,试图模仿它们,但并不真正理解它们,包括MSDN指南。我正在大学学习,但向一位家庭成员承诺,我会在夏天为他们开发一些软件,到目前为止进展顺利,但我遇到了困难
谢谢您已使用类型为
EventArgs
的第二个参数声明了一个委托。但是,在main中,您使用的处理程序不接受EventArgs
,而是接受它的子类。编译器无法在此进行转换
您可以通过声明委托接受您的特定参数来解决此问题:
public delegate void buttonChange(object sender, buttonChangeArgs e);
除此之外,您的
Main
很可能是一个静态方法(我假设您正在编写一个控制台应用程序)。在这种情况下,您使用的按钮更改needed
是无效的,因为它不是静态的(至少从我们可以看到的情况来看)。您已使用类型为EventArgs
的第二个参数声明了一个委托。但是,在main中,您使用的处理程序不接受EventArgs
,而是接受它的子类。编译器无法在此进行转换
您可以通过声明委托接受您的特定参数来解决此问题:
public delegate void buttonChange(object sender, buttonChangeArgs e);
除此之外,您的
Main
很可能是一个静态方法(我假设您正在编写一个控制台应用程序)。在这种情况下,您使用的ButtonChangeRequired
是无效的,因为它不是静态的(至少从我们看到的情况来看)。谢谢,不,它是一组表单,因此我需要一些东西来更改按钮。。。我之所以这么做是因为我想能够在其他表单上使用按钮时进行口述,而想不出其他方法来实现。无论如何,谢谢你的帮助。谢谢,不,这是一套表格,因此我需要一些东西来更改按钮。。。我之所以这么做是因为我想能够在其他表单上使用按钮时进行口述,而想不出其他方法来实现。无论如何,谢谢你的帮助。