Beispiel #1
0
        /// <summary>
        /// Обработчик события - изменение значения в поле ввода
        /// </summary>
        /// <param name="obj">Объект, инициировавший событие (поле ввода)</param>
        /// <param name="ev">Аргумент события</param>
        private void tbCalcValue_onTextChanged(object obj, EventArgs ev)
        {
            FTable.FRUNK runk       = m_zGraph_fTABLE.GetRunk(NAlg);
            bool         bCalculate = false;
            string       strVal     = string.Empty;

            float[] pars = new float[(int)runk + 1];

            for (int indx = 0; indx < pars.Length; indx++)
            {
                bCalculate = float.TryParse((Controls.Find(((INDEX_CONTROL)(indx + (int)INDEX_CONTROL.TEXTBOX_A1)).ToString(), true)[0] as TextBox).Text, NumberStyles.Any, CultureInfo.InvariantCulture, out pars[indx]);
                if (bCalculate == false)
                {
                    break;
                }
                else
                {
                    ;
                }
            }

            if (bCalculate == true)
            {
                strVal = m_zGraph_fTABLE.Calculate(NAlg, getRunkVariable(obj as TextBox), pars).ToString(@"F2");
            }
            else
            {
                strVal = float.NaN.ToString();
            }

            (Controls.Find(INDEX_CONTROL.TEXTBOX_F.ToString(), true)[0] as TextBox).Text = strVal;
        }
Beispiel #2
0
        /// <summary>
        /// при пустой строке исключение. при любом другом знаке кроме цифр исключение.!!!
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="ev"></param>
        private void tbCalcValue_onTextChanged(object obj, EventArgs ev)
        {
            FTable.FRUNK runk = m_zGraph_fTABLE.GetRunk(NAlg);
            float[]      pars = new float[(int)runk + 1];
            for (int indx = 0; indx < pars.Length; indx++)
            {
                pars[indx] =
                    float.Parse((Controls.Find(((INDEX_CONTROL)(indx + (int)INDEX_CONTROL.TEXTBOX_A1)).ToString(), true)[0] as TextBox).Text, CultureInfo.InvariantCulture);
            }

            (Controls.Find(INDEX_CONTROL.TEXTBOX_REZULT.ToString(), true)[0] as TextBox).Text =
                m_zGraph_fTABLE.Calculate(NAlg, pars).ToString(@"F2");
        }
Beispiel #3
0
        /// <summary>
        /// Возвратить ранг изменившегося значения
        /// </summary>
        /// <param name="tbxValue">Поле ввода, в котором изменилось значение</param>
        /// <returns>Ранг изменившегося значения</returns>
        private FTable.FRUNK getRunkVariable(TextBox tbxValue)
        {
            FTable.FRUNK fRunkRes = FTable.FRUNK.UNKNOWN;

            for (INDEX_CONTROL indx = INDEX_CONTROL.TEXTBOX_A1; indx < INDEX_CONTROL.TEXTBOX_F; indx++)
            {
                if (tbxValue.Name.Equals(indx.ToString()) == true)
                {
                    fRunkRes = (FTable.FRUNK)(indx - INDEX_CONTROL.TEXTBOX_A1);
                    break;
                }
                else
                {
                    ;
                }
            }

            return(fRunkRes);
        }
Beispiel #4
0
        /// <summary>
        /// Обработчик события - изменение выбранной строки
        ///  в отображении для таблицы со значениями
        /// </summary>
        /// <param name="obj">Объект, инициировавший событий (отображение таблицы значений)</param>
        /// <param name="ev">Аргумент события</param>
        private void dgvValues_onSelectionChanged(object obj, EventArgs ev)
        {
            DataGridView dgv = obj as DataGridView;

            FTable.FRUNK runk      = FTable.FRUNK.F1; // для блокировки полей ввода
            TextBox      tbValue   = null;            // элемент управления - поле для ввода текста
            int          iSelIndex = dgv.SelectedRows.Count > 0 ? dgv.SelectedRows[0].Index : -1;

            if (!(iSelIndex < 0))
            {
                // отменить обработку событий "изменение текста", очистить поля ввода калькулятора
                for (INDEX_CONTROL indx = INDEX_CONTROL.TEXTBOX_A1; indx < (INDEX_CONTROL.TEXTBOX_F + 0); indx++)
                {
                    tbValue = Controls.Find(indx.ToString(), true)[0] as TextBox;
                    if (indx < (INDEX_CONTROL.TEXTBOX_F + 0))
                    {
                        tbValue.TextChanged -= tbCalcValue_onTextChanged;
                    }
                    else
                    {
                        ;
                    }
                    tbValue.Text = string.Empty;
                }

                runk = m_zGraph_fTABLE.GetRunk(NAlg);
                // установить новые значения в поля ввода для калькулятора
                for (INDEX_CONTROL indx = INDEX_CONTROL.TEXTBOX_A1; indx < (INDEX_CONTROL.TEXTBOX_F + 1); indx++)
                {
                    tbValue      = Controls.Find(indx.ToString(), true)[0] as TextBox;
                    tbValue.Text = dgv.Rows[iSelIndex].Cells[(int)(indx - INDEX_CONTROL.TEXTBOX_A1)].Value.ToString();
                }

                switch (runk)
                {
                case FTable.FRUNK.F1:    // блокировать 2-ое, 3-е поле ввода
                    (Controls.Find(INDEX_CONTROL.TEXTBOX_A2.ToString(), true)[0] as TextBox).Enabled     =
                        (Controls.Find(INDEX_CONTROL.TEXTBOX_A3.ToString(), true)[0] as TextBox).Enabled =
                            false;
                    break;

                case FTable.FRUNK.F2:    // блокировать 3-е поле ввода
                    (Controls.Find(INDEX_CONTROL.TEXTBOX_A2.ToString(), true)[0] as TextBox).Enabled = true;
                    (Controls.Find(INDEX_CONTROL.TEXTBOX_A3.ToString(), true)[0] as TextBox).Enabled = false;
                    break;

                case FTable.FRUNK.F3:    // ничего не блокируется
                    (Controls.Find(INDEX_CONTROL.TEXTBOX_A1.ToString(), true)[0] as TextBox).Enabled         =
                        (Controls.Find(INDEX_CONTROL.TEXTBOX_A2.ToString(), true)[0] as TextBox).Enabled     =
                            (Controls.Find(INDEX_CONTROL.TEXTBOX_A3.ToString(), true)[0] as TextBox).Enabled =
                                true;
                    break;

                default:
                    break;
                }

                // восстановить обработчики событий
                for (INDEX_CONTROL indx = INDEX_CONTROL.TEXTBOX_A1; indx < (INDEX_CONTROL.TEXTBOX_F + 0); indx++)
                {
                    (Controls.Find(indx.ToString(), true)[0] as TextBox).TextChanged += new EventHandler(tbCalcValue_onTextChanged);
                }
            }
            else
            {
                ; // нет ни одной выбранной строки
            }
        }
Beispiel #5
0
        /// <summary>
        /// Обработчик события - изменение выбранной строки
        ///  в отображении для таблицы с наименованями функций
        /// </summary>
        /// <param name="obj">Объект, инициировавший событий (отображение таблицы функций)</param>
        /// <param name="ev">Аргумент события</param>
        private void dgvnALG_onSelectionChanged(object obj, EventArgs ev)
        {
            DataGridView dgv = obj as DataGridView;

            //TextBox tbValue = null;
            FTable.FRUNK runk      = FTable.FRUNK.F1; // для блокировки/снятия с отображения столбцов
            DataRow[]    rowsNAlg  = null;
            int          iSelIndex = dgv.SelectedRows.Count > 0 ? dgv.SelectedRows[0].Index : -1;

            //Удалить все строки со значениями для прдыдущей функции
            dgv = Controls.Find(INDEX_CONTROL.DGV_VALUES.ToString(), true)[0] as DataGridView;
            dgv.Rows.Clear();

            if (!(iSelIndex < 0))
            {
                runk = m_zGraph_fTABLE.GetRunk(NAlg);

                rowsNAlg = m_tblEdit.Select(@"N_ALG='" + NAlg + @"'");

                foreach (DataRow r in rowsNAlg)
                {
                    dgv.Rows.Add(((float)r[@"A1"]).ToString(CultureInfo.InvariantCulture)
                                 , ((float)r[@"A2"]).ToString(CultureInfo.InvariantCulture)
                                 , ((float)r[@"A3"]).ToString(CultureInfo.InvariantCulture)
                                 , ((float)r[@"F"]).ToString(CultureInfo.InvariantCulture)
                                 , r[@"ID"]
                                 );
                }

                switch (runk)
                {
                case FTable.FRUNK.F1:    // блокировать/снять с отображения 2-ой, 3-ий столбец
                    dgv.Columns[1].Visible     =
                        dgv.Columns[2].Visible =
                            false;
                    break;

                case FTable.FRUNK.F2:    // блокировать/снять с отображения 3-ий столбец
                    dgv.Columns[1].Visible = true;
                    dgv.Columns[2].Visible = false;
                    break;

                case FTable.FRUNK.F3:    // ничего не блокируется
                    dgv.Columns[0].Visible         =
                        dgv.Columns[1].Visible     =
                            dgv.Columns[2].Visible =
                                true;
                    break;

                default:
                    break;
                }

                switch (runk)
                {
                case FTable.FRUNK.F1:
                case FTable.FRUNK.F2:
                case FTable.FRUNK.F3:
                    m_zGraph_fTABLE.Draw(NAlg);
                    break;

                default:
                    break;
                }
            }
            else
            {
                ;
            }
        }