void RegisterEventHandler(object component, string eventName, string eventHandlerName)
        {
            EventDescriptor    eventDescriptor    = TypeDescriptor.GetEvents(component).Find(eventName, false);
            PropertyDescriptor propertyDescriptor = componentCreator.GetEventProperty(eventDescriptor);

            propertyDescriptor.SetValue(component, eventHandlerName);
        }
        /// <summary>
        /// Walks a statement of the form:
        ///
        /// self.a += self.b
        /// </summary>
        public override bool Walk(AugmentedAssignStatement node)
        {
            if (!FoundInitializeComponentMethod)
            {
                return(false);
            }

            MemberExpression             eventExpression = node.Left as MemberExpression;
            string                       eventName       = eventExpression.Name.ToString();
            PythonControlFieldExpression field           = PythonControlFieldExpression.Create(eventExpression);

            MemberExpression eventHandlerExpression = node.Right as MemberExpression;
            string           eventHandlerName       = eventHandlerExpression.Name.ToString();

            IComponent currentComponent = fieldExpression.GetObject(componentCreator) as IComponent;

            EventDescriptor    eventDescriptor    = TypeDescriptor.GetEvents(currentComponent).Find(eventName, false);
            PropertyDescriptor propertyDescriptor = componentCreator.GetEventProperty(eventDescriptor);

            propertyDescriptor.SetValue(currentComponent, eventHandlerName);
            return(false);
        }