110,535
社区成员
发帖
与我相关
我的任务
分享
//2定义事件 这句话写在你的控件的类的里面作为个字段,注册事件时要用的
public event 相关事件的委托 相关事件;
//3你的用户控件button事件
private void btn_Click(object sender, EventArgs e)
{
//就这一句就够了,当你在执行代码的时候这句话就是调用的你父窗体里为自定义控件所注册的事件
相关事件(this,ma);
}
我给你写的那两段不是都说明了代码的位置吗?怎么你写的时候又把代码写错位置了。。。。
我建议你看下委托和事件的相关资料,你貌似对这个不是很明白所以写起来比较乱
public delegate void startCamera(object sender);
public event startCamera Start;
/// <summary>
/// 拍照
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnPic_Click(object sender, EventArgs e)
{
//......
Start();
}
那我自定义控件里面怎么写呢?
private void button1_Click(object sender, EventArgs e)
{
}
//1定义个委托用来掉方法 MyEventArgs类要你自己写里面可以加些你认为有用的属性,不想用的话可以不加这个参数,
public delegate void 相关事件的委托(object sender, MyEventArgs e);
//2定义事件 这句话写在你的控件的类的里面作为个字段,注册事件时要用的
public event 相关事件的委托 相关事件;
//3你的用户控件button事件
private void btn_Click(object sender, EventArgs e)
{
//各种逻辑代码...
MyEventArgs ma=new MyEventArgs();
相关事件(this,ma);
}
下面是你调用用户控件的地方的代码
//这句话在你写完+=后按两下tab键,后面的东西会自动生成
你的用户控件.相关事件 += new 相关事件的委托(事件);
事件((object sender, MyEventArgs e)
{
//这里面写你的“调用Route中原本就有的控件,和事件”相关逻辑代码了.
}
不知道说清楚了没有,我表达能力有限……