private void MainForm_Load(object sender, EventArgs e) { Settings = new WorkSettings(); // Создание экземпляра настроек startControl.BackgroundColor = Settings.BackgroundColor; // Добавление созданных контролов на главную форму this.Controls.Add(startControl); this.Controls.Add(login); this.Controls.Add(customSelect); this.Controls.Add(settings); this.Controls.Add(payment); this.Controls.Add(finish); // Настройка контролов и подписка на события от них foreach (Control ctrl in this.Controls) { var ac = ctrl as IActivControl; // Если контрол if (ac != null) // реализует интерфейс IActivControl { ctrl.Visible = false; ctrl.Location = ctrl.Align(HorizontalAlign.Centre, VerticalAlign.Centre); // Подписка на событие ActivControl ac.ActivControl += new EventHandler <WorkEventArgs> (Set_ActivControl); } var dm = ctrl as IDeadMouse; // Если контрол if (dm != null) // реализует интерфейс IDeadMouse, подписываемся // на событие DeadMouse { dm.DeadMouse += new EventHandler(On_Dead_Mouse); } if (ctrl is IGoHome) { ((IGoHome)ctrl).GoHomeEvent += new EventHandler(startControl.Start); } var sr = ctrl as ISettingsIsRead; if (sr != null) { Settings.WorkSettingsIsRead += new EventHandler (sr.SettingsIsRead); } } // Подписка на события контролов startControl.AdminClick += new EventHandler(login.Start); startControl.UserClick += new EventHandler(customSelect.Start); login.btnCancel.Click += new EventHandler(startControl.Start); login.LogOK += new EventHandler(settings.Start); settings.btnCancel.Click += new EventHandler(startControl.Start); customSelect.ProductSelected += new EventHandler(payment.Start); payment.ProductIsPaid += new EventHandler(finish.Start); // Чтение настроек из файла Settings.Read("Settings.dat"); // Запуск стартового контрола startControl.Start(this, new EventArgs()); }