根据delegate的知识,完成以下用户控件中代码片段的填写。
namespace test
{
public delegate void OnDBOperate();
public class UserControlBase : System.Windows.Forms.UserControl
{
public event OnDBOperate OnNew;
private void toolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs e)
{
if(e.Button.Equals(BtnNew))
{
   //请在这里补齐代码用来调用OnDBOperate委托签名的OnNew事件。
}
}
}答: if( OnNew != null ) OnNew( this, e );
请问答案中的这段代码调用后是什么意思?
期待中......

解决方案 »

  1.   

    OnNew是你定义的一个OnDBOperate类型的事件委托,相当于产生一个事件吧? 不知道这么理解对不?
      

  2.   

    if(e.Button.Equals(BtnNew)) 

      //请在这里补齐代码用来调用OnDBOperate委托签名的OnNew事件。 


    } 答: if( OnNew != null ) OnNew( this, e ); 
    请问答案中的这段代码调用后是什么意思? 
    期待中......
    ================
    一旦委托调用,就立即触发此事件。
      

  3.   

    委托就是方法的引用在其他地方挂起这个事件委托后,如果事件触发后,就可以响应该事件。if( OnNew != null ) //判断事件是否已经被挂起OnNew( this, e );  //若挂起,则可以触发该事件挂起的事件可以在其他cs文件中,不一定要求在本cs文件中只要挂起了该事件,当执行到if语句时,就可以激发该事件!
      

  4.   

    挂起事件的语句类似:
    UserControlBase userControl1;userControl1.OnNew + = new OnDBOperate(ProcessEvent);void ProcessEvent(object sender, EventArgs e)
    {
       //put your code to process your event
    }