// Inicia o período de gravação de eventos public void StartRecorder(string eventFilter) { foreach (var c in m_form.Controls) { Type controlType = c.GetType(); foreach (var ev in controlType.GetEvents()) { if (string.IsNullOrEmpty(eventFilter) || ev.Name.Contains(eventFilter)) { var r = new RecorderEventInfo() { Info = ev, RecControl = (Control)c }; m_eventRecorderList.Add(r); MethodInfo mi = r.GetType().GetMethod("EventHandler"); ev.AddEventHandler(c, Delegate.CreateDelegate(ev.EventHandlerType, r, mi)); } } } }