2009-11-03 2 views
1

У меня проблема с обработчиком событий управления. Я создал элемент управления (кнопка), и я хочу связать событие click с помощью метода. Но у меня есть «Ошибка привязки к целевому методу». исключение.Как создать обработчик события динамического управления

код,

class SetControlEvent 
{ 

    public void Sleep() 
    { 
     System.Threading.Thread.Sleep(5000); 
    } 

    internal void Set(object theObject,XmlNode theControlNode) 
    { 
     EventInfo ei = theObject.GetType().GetEvent("Click"); 


     EventDescriptorCollection events = TypeDescriptor.GetEvents(theObject); 
     foreach (EventDescriptor theEvent in events) 
     { 
      foreach (XmlAttribute attribute in theControlNode.Attributes) 
      { 
       if (theEvent.DisplayName == attribute.Name) 
       { 

        MethodInfo mi = typeof(SetControlEvent).GetMethod("Sleep"); 
        Delegate del = Delegate.CreateDelegate(ei.EventHandlerType, this, "Sleep"); 

        theEvent.AddEventHandler(theObject, del); 



        break; 

       } 
      } 
     } 
    } 

} 

так, что я должен делать?

благодаря ...

ответ

1

Вашего Sleep метод подпись не является достаточной для EventHandler делегата.

Попробуйте это:

public void Sleep(Object sender, EventArgs e) 
    { 
     System.Threading.Thread.Sleep(5000); 
    } 
Смежные вопросы