考试大题,各位高手求帮忙啊 C#

如在Windows窗体应用程序中,Form1中的定义的一个方法:voidChangeColor(),在Form2中,如要执行Form1中的ChangeColor方法,请叙... 如在Windows窗体应用程序中,Form1中的定义的一个方法:void ChangeColor( ),在Form2中,如要执行Form1中的ChangeColor方法,请叙述如何用“委托”的方式来实现。(10分) 展开
 我来答
xmandlp
2012-12-24 · TA获得超过484个赞
知道小有建树答主
回答量:498
采纳率:0%
帮助的人:304万
展开全部
在from2后台代码类中 添加如下代码:
public delegate void Refreshdata();//Refreshdata可以换成其他名字
public Refreshdata refreshdata; //refreshdata可以换成其他名字
//定义委托

然后假设当form1中的某个按钮单击后出现form2,那么在单击事件中添加如下代码:
form2 f2 = new form2;
f2.refreshdata = ChangeColor;//指定委托所调用的方法
f2.ShowDialog();

当form2中某个事件来调用form1的ChangeColor方法,你只要在那事件下添加如下代码:
this.refreshdata();//调用委托所指方法
zc_hades
2012-12-24 · TA获得超过181个赞
知道小有建树答主
回答量:262
采纳率:0%
帮助的人:111万
展开全部
public delegate void EventHandler(object sender, EventArgs e);

public event EventHandler Change;

private void OnChange()
{
EventHandler Handler = this.Change;
if (PropertyChanged != null)
{
Handler(this,new EventArgs());
}
}

Form1 obj = new Form1();
this.OnChange += obj.ChangeColor;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灵葬外与他29
2012-12-24 · TA获得超过2183个赞
知道小有建树答主
回答量:1221
采纳率:50%
帮助的人:946万
展开全部
在Form2里面新建一个范围修饰符为public的委托类型,返回值为VOID,委托名称随意。接着新建类型为刚才新建的委托类型的一个实例,访问修饰符为public,实例名随意,接着在Form1实列化Form2的时候用Form2的实例点刚才在Form2里面新建的委托实例等于this.ChangeColor; 现在在Form2里面就可以直接调用刚才创建的那个委托实例了!
调用如下:
委托实例名();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式