日期:2014-05-18  浏览次数:20528 次

如何代码中触发一个事件。
事件已经定义好了。
public   delegate   void   hjEventHandler(object   sender,   EventArgs   e);
public   event   hjEventHandler   SexChanged;
事件处理函数也写好了。
  public   void   hj_SexChanged(object   sender,   EventArgs   e)
        {
                TextBox1.Text   =   "event   Success! ";
        }
事件也订阅过了

    hj.SexChanged   +=new   hjEventHandler(hj_SexChanged);

(写在不同的地方。这个纯粹是自己研究着玩,event这块不是很熟。)

该怎么触发这个事件呢?

(asp.net里button.click在点击是触发了,他是怎么触发的啊?)
期望有深度的解答。


------解决方案--------------------
如果是用户控件需要抛出事件,请这样写:
usercontrol.ascx.cs中的处理:
1. 定义public的事件委托,如clickeventhandler;
2. 在usercontrol类中声明事件,如click;
3. 在usercontrol类中定义引发事件的方法,如onclick()方法;
4. 在usercontrol类的相关方法中调用引发事件的方法,如在button_click()中调用onclick()。

核心代码示意如下:
public delegate void clickeventhandler(object sender, eventargs e);
public class myusercontrol : system.web.ui.usercontrol
{
protected system.web.ui.webcontrols.button abutton;
public event clickeventhandler click;
protected void onclick(eventargs e)
{
if (click!=null) click(this, e);
}
private void abutton_click(object sender, system.eventargs e)
{
this.onclick(e);
}
}

包含usercontrol的页面cs文件中的处理:
1. initializecomponent()中增加事件处理程序,采用findcontrol方法找到usercontrol;
2. 定义事件处理方法,在该方法中处理usercontrol的事件,如usercontrol_clicked()。
核心代码示意如下:
private void initializecomponent()
{
this.load += new system.eventhandler(this.page_load);
myusercontrol uc = this.findcontrol( "myusercontrolid ") as myusercontrol;
uc.click += new clickeventhandler(this.usercontrol_clicked);
}
private void usercontrol_clicked(object sender, system.eventargs e)
{
// usercontrol_clicked event hanlder
}

------解决方案--------------------
事件和委托``这些东西到底怎么学??
------解决方案--------------------
帮顶
------解决方案--------------------
private void Button1_Click(object sender, EventArgs e)
{
TestHJ hj = new TestHJ();
hj.SexChanged += new hjEventHandler(hj_SexChanged);
hj.StartTest();
}
里面少写了一句:
------解决方案--------------------
收藏
------解决方案--------------------
sprc_lcl(cool一生) 解释的很清楚了。

------解决方案--------------------
你还少引发事件的函数
Button控件里有个click,command事件,含有OnClick,OnCommand等引发事件的函数。这几个函数在收到系统单击消息后调用。
sprc_lcl(cool一生) 解释的很清楚了.