示例#1
0
        public MainCriterionForm(
            Form prevForm,
            Model model)
        {
            InitializeComponent();

            // Подстройка интерфейса
            this.Left = prevForm.Left;
            this.Top  = prevForm.Top;
            if (this.FormBorderStyle != FormBorderStyle.FixedSingle)
            {
                this.WindowState = prevForm.WindowState;
            }
            if (this.WindowState == FormWindowState.Normal)
            {
                this.Width  = prevForm.Width;
                this.Height = prevForm.Height;
            }

            this._prevForm             = prevForm;
            this._model                = model;
            this._criterialConstraints = new CriterialConstraints();

            // Удалим неактивные на данный момент
            // эксперименты (чтоб не мешались потом)
            this._model.Experiments.RemoveInactiveExperiments();
            // Заполним выпадающий список критериями оптимальности
            this.FillCriteriaComboBox();
            // Обновим таблицу с ограничениями
            this.FillConstraintsDataGrid();

            // Запустим сборщик мусора, чтобы убить
            // предыдущие ветки
            System.GC.Collect();
        }
        public MainCriterionResultsForm(
            Form prevForm,
            Model model,
            CriterialConstraints criterialConstraints,
            TId mainCriterionId)
        {
            InitializeComponent();

            // Подстройка интерфейса
            this.Left = prevForm.Left;
            this.Top  = prevForm.Top;
            if (this.FormBorderStyle != FormBorderStyle.FixedSingle)
            {
                this.WindowState = prevForm.WindowState;
            }
            if (this.WindowState == FormWindowState.Normal)
            {
                this.Width  = prevForm.Width;
                this.Height = prevForm.Height;
            }

            this._prevForm             = prevForm;
            this._model                = model;
            this._criterialConstraints = criterialConstraints;

            this._showInactiveExperiments = false;

            // Найдем решение
            this._criterialConstraints.ApplyCriterialConstraints(ref this._model);
            MainCriterionSolver solver = new MainCriterionSolver();

            this._result = solver.FindDecision(this._model, mainCriterionId);

            // Заполним таблицу результатами
            MainCriterionDataGridFiller.FillDataGrid(
                this._model,
                this._result,
                this.dgvData,
                this._showInactiveExperiments);

            // Запустим сборщик мусора, чтобы убить
            // предыдущие ветки
            System.GC.Collect();
        }