如题

解决方案 »

  1.   

    首先定义一个委托
    public delegate void itemClikedDelegate(int a,int b);  
    再定义相应的事件
    public event itemClikedDelegate itemCliked;
    在需要的地方激发出事件
    private void AAAA(object sender, MouseEventArgs e)
    {
    itemCliked(bandList.CurrentBand,j);         //在此触发事件,并传入需要的参数
    }
    在使用到控件的地方编写事件处理程序。就像编写Button的Click事件一样。private void myControl_itemCliked(int a, int b)
    {
       MessageBox.Show("参数a为:"+a+"参数b为:"+b);
    }
      

  2.   

    首先定义一个委托 
    public delegate void itemClikedDelegate(int a,int b);  
    再定义相应的事件 
    public event itemClikedDelegate itemCliked;我认为这两步就已经定义好事件了!
      

  3.   


    正解,不过itemCliked(bandList.CurrentBand,j);  这个里的参数为什么这么写呢?
    呵呵
      

  4.   

    事件类型能用 .net 类库有的就用已有的, 比如简单的 EventHandler事件参数尽量从 EveentArgs 体系派生如果事件多, 利用 Control基类的.Events属性 来收集代理实现事件激发哪里判断跨线程调用, 显得周全.事件激发采用 protected virtual void OnSomeEventOccured(EventArgs e); 风格比较好.
      

  5.   


    高手即是高手!事件参数从EventArgs继承,然后添加需要的属性,构造函数,
    public class tempArgs:EventArgs
    {
     string name;
     public tempArgs(string name){this.name=name;}
    public Name
    {
     get{return name;}
    }
    }
    然后声明事件:public event EventHandler<tempArgs> TempEvent;
    将事件调用封居一个函数:protected virtual void OnTempEvent(tempArgs e)
    {
     if(TempEvent!=null)
    {
      TempEvent(this,e);
    }
    }最好在需要的地方调用:public void Loading Data()
    {
    ...
      tempArgs e=new tempArgs("加载数据");
      OnTempEvent(e);
    ...
    }这样一切ok.......(当然你还需要订阅此事件:xxx.TempEvent+=(然后连按两下Tab键,就行了));;;
      

  6.   

    通过这种方法定义你的UserControl,你会发现它多了一个自定义事件,然后你给那个自定义事件button1Click添加方法即可实现你的效果。 
    C# code        public event EventHandler button1Click;
     
            public UserControl1()
            {
                InitializeComponent();
                button1.Click += new EventHandler(button1_Click);
            }        void button1_Click(object sender, EventArgs e)
            {
                if (button1Click != null)
                {
                    button1Click(this, e);
                }
            }
    试试
      

  7.   

    给button1添加不同事件:button1.Click += new EventHandler(button1_Click);
    button1.MouseDown += new MouseEventHandler(button1_MouseDown);
    button1.Paint += new PaintEventHandler(button1_Paint);形式相同,参数不同
    private void button1_Click(object sender, EventArgs e)
    { }
    private void button1_Paint(object sender, PaintEventArgs e)
    { }
    private void button1_MouseDown(object sender, MouseEventArgs e)
    { }
            
      

  8.   

    委托实现 
    用户控件中定义  
      public  event  EventHandler  BtnEvent;  
      private  void  Btn_Click(object  sender,  System.EventArgs  e)  
      {  
      if  (BtnEvent  !=  null)  
      {  
        BtnEvent(sender,e);  
      }  
      }  
        
      override  protected  void  OnInit(EventArgs  e)  
      {  
          btn.BtnEvent  +=  new  EventHander(this.test);  
      }  
      private  void  A(object  sender  ,System.EventArgs  e)  
      {        
      }