Beispiel #1
0
        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());
        }