在一个类中调用一个控件的ButtonPressed事件来调用一个带有参数的方法

例如:

Class A

{

 public void B(Parm p1,Parm p2){

}

public void C (Control c ,Parm p3){

Parm p1=value;

Parm p2=value;

 c.ButtonPressed+=cButtonPressed ; ?????1

}

public void cButtonPressed(Object sender,EventArgs e){

B(p1,p2); ????2

}

}

A类的方法B有两个参数p1,p2,A类的方法C的参数是控件c和p3,现在要在方法C中指定c的ButtonPressed事件为方法cButtonPressed,现在的问题是:参数p1,p2在方法C中, 不知如何传递参数?请教各位给我提供一个好的解决方案,不胜感激!!

 

SMILET
浏览 331回答 1
1回答

浮云间

这个问题的解决很简单.只需要把事件委托换成匿名委托或者lamda就好了. public void C (Control c ,Parm p3){ Parm p1=value; Parm p2=value;  c.ButtonPressed+=(s,e)=>     {       //可以使用p1,p2,p3     }; } 不过不太建议这样解决,出现这样的问题,通常是由于设计的问题.请多思考一下是否真的有必要这样做
打开App,查看更多内容
随时随地看视频慕课网APP