Esempio n. 1
0
        public void GenButtons(bool menuGen)
        {
            int i = 1;

            foreach (Button b in BList)
            {
                panel1.Controls.Remove(b);
            }
            BList.Clear();
            foreach (Method m in methods)
            {
                Method method = m;
                if (menuGen)
                {
                    #region Menu Items Generation
                    ToolStripMenuItem b2 = new ToolStripMenuItem();
                    b2.Text = m.GetName();
                    b2.Tag  = method;
                    if (method == meth)
                    {
                        b2.Checked = true;
                    }
                    b2.Click += delegate(object sender, EventArgs e)
                    {
                        if (b2.Checked)
                        {
                            b2.Checked = false;
                            this.meth  = null;
                            GenButtons(false);
                        }
                        else
                        {
                            ToolStripMenuItem ditems = (ToolStripMenuItem)menuStrip1.Items[3];
                            foreach (ToolStripMenuItem it in ditems.DropDownItems)
                            {
                                it.Checked = false;
                            }
                            b2.Checked = true;
                            this.meth  = (Method)b2.Tag;
                            if (meth != null)
                            {
                                if (meth.Match(2))
                                {
                                    radioButton2.Checked = true;
                                }
                                else
                                {
                                    radioButton1.Checked = true;
                                }
                            }
                            for (int eee = 2; eee < 11; eee++)
                            {
                                ((CheckBox)boxes[eee]).Checked = false;
                            }
                            GenButtons(false);
                        }
                    };
                    ToolStripMenuItem item = (ToolStripMenuItem)menuStrip1.Items[3];
                    item.DropDownItems.Add(b2);
                    #endregion
                }
                if (m.Match(critCalc()))
                {
                    #region Button Generation
                    Button b1 = new Button();
                    //if (method == meth)
                    //{
                    //    b1.BackColor = System.Drawing.SystemColors.InactiveCaptionText;
                    //}
                    b1.Top    = 15 * i;
                    i        += 2;
                    b1.Left   = 10;
                    b1.Width  = panel1.Width - 20;
                    b1.Text   = m.GetName();
                    b1.Anchor = AnchorStyles.Right | AnchorStyles.Top;
                    b1.Click += delegate(Object s, EventArgs ea)
                    {
                        if (checkBox9.Checked)
                        {
                            TestDialog dlg = new TestDialog(method);
                            dlg.setMethod(this);
                            dlg.ShowDialog();
                        }
                        else
                        {
                            double[,] mat = new double[GvMatr.RowCount, GvMatr.ColumnCount];
                            double[] prob = new double[GVP.ColumnCount];
                            double   alfa, a;
                            foreach (DataGridViewRow row in GvMatr.Rows)
                            {
                                foreach (DataGridViewCell c in row.Cells)
                                {
                                    mat[c.RowIndex, c.ColumnIndex] = System.Double.Parse(c.Value.ToString());
                                }
                            }
                            NormProb();
                            foreach (DataGridViewRow row in GVP.Rows)
                            {
                                foreach (DataGridViewCell c in row.Cells)
                                {
                                    prob[c.ColumnIndex] = System.Double.Parse(c.Value.ToString());
                                }
                            }
                            try
                            {
                                alfa = System.Double.Parse(textBox1.Text);
                            }
                            catch (FormatException)
                            {
                                alfa = 0;
                            }
                            try
                            {
                                a = System.Double.Parse(textBox2.Text);
                            }
                            catch (FormatException)
                            {
                                a = matrMin();
                            }
                            method.Init(mat, prob, alfa, a);
                            int result = method.RunMethod();
                            label5.Text = (result + 1).ToString();
                            Font f = new Font(radioButton1.Font, System.Drawing.FontStyle.Bold);
                            label5.Font = f;
                            for (int j = 0; j < GvMatr.Rows.Count; ++j)
                            {
                                GvMatr.Rows[j].DefaultCellStyle.BackColor             = GvMatr.Rows[j].DefaultCellStyle.SelectionBackColor
                                                                                      = (j == result) ? Color.Yellow : Color.White;
                            }
                            GvMatr[0, result].Selected = true;
                            GvMatr.CurrentCell         = GvMatr[0, result];
                        }
                    };
                    b1.MouseMove += delegate(Object sender, MouseEventArgs e)
                    {
                        Font f = new Font(radioButton1.Font, System.Drawing.FontStyle.Bold);
                        for (int j = 0; j < 11; j++)
                        {
                            if (method.Match((int)Math.Pow(2, j)))
                            {
                                boxes[j].Font = f;
                            }
                        }
                    };
                    b1.MouseLeave += delegate(Object sender, EventArgs e)
                    {
                        Font f = new Font(radioButton1.Font, System.Drawing.FontStyle.Regular);
                        foreach (Control c in boxes)
                        {
                            c.Font = f;
                        }
                    };
                    panel1.Controls.Add(b1);
                    BList.Add(b1);
                    #endregion
                }
            }
        }