почему это дает ошибку: this.Controls.Add(timer1);
this.Controls.Add(timer1);
но это не так: this.Controls.Add(button1);
this.Controls.Add(button1);
Если и кнопка, и таймер являются элементами управления, то почему мы не можем добавить таймер как элемент управления в winforms?
Предполагая, что System.Windows.Forms.Timer, Timer наследуется непосредственно от Component, а не через Control, как Button делает:
System.Windows.Forms.Timer
Timer
Component
Control
Button
System.Windows.Forms.Timer timer = new Timer(); this.components.Add(timer);
Простой.
В .NET есть три таймера:
Нет из них элементов управления .
Все элементов управления контейнера имеет свойство Controls, которое предоставляет ControlCollection , которое принимает только System.Windows.Forms.Control (или классы, которые наследуют)
Controls
См. ContainerControl.Controls.Add