首页 新闻 搜索 专区 学院

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

0
悬赏园豆:20 [已解决问题] 解决于 2010-12-31 12:45

例如:

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中, 不知如何传递参数?请教各位给我提供一个好的解决方案,不胜感激!!

 

Michelle 米雪儿的主页 Michelle 米雪儿 | 菜鸟二级 | 园豆:209
提问于:2010-12-31 11:45
< >
分享
最佳答案
0

这个问题的解决很简单.只需要把事件委托换成匿名委托或者lamda就好了.

public void C (Control c ,Parm p3){

Parm p1=value;

Parm p2=value;

 c.ButtonPressed+=(s,e)=>

    {

      //可以使用p1,p2,p3

    };

}

不过不太建议这样解决,出现这样的问题,通常是由于设计的问题.请多思考一下是否真的有必要这样做

收获园豆:20
一味 | 初学一级 |园豆:150 | 2010-12-31 12:17
是有必要这么做的,因为p2参数是一个窗体,p1是LookUpedit控件,别人页面在加载时就要调用我这个A类的C方法,可是加载时是不能弹出别的窗体的,所以我要给他控件指定ButtonPressed事件以保证当用户点击按钮时才弹出窗体!呵呵,谢谢你的回答!!
Michelle 米雪儿 | 园豆:209 (菜鸟二级) | 2010-12-31 12:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册