public virtual void AddValueChanged(object component, EventHandler handler)
{
if (component == null) throw new ArgumentNullException(nameof(component));
if (handler == null) throw new ArgumentNullException(nameof(handler));
if (_valueChangedHandlers == null)
{
_valueChangedHandlers = new Hashtable();
}
EventHandler h = (EventHandler)_valueChangedHandlers[component];
_valueChangedHandlers[component] = Delegate.Combine(h, handler);
}