protected INDEX_CONTROL getIndexControl(Control ctrl) { INDEX_CONTROL indxRes = INDEX_CONTROL.UNKNOWN; string strId = (ctrl as Control).Name; if (strId.Equals(INDEX_CONTROL.CLBX_COMP_CALCULATED.ToString()) == true) { indxRes = INDEX_CONTROL.CLBX_COMP_CALCULATED; } else if (strId.Equals(INDEX_CONTROL.MIX_PARAMETER_CALCULATED.ToString()) == true) { indxRes = INDEX_CONTROL.MIX_PARAMETER_CALCULATED; } else if (strId.Equals(INDEX_CONTROL.CLBX_COMP_VISIBLED.ToString()) == true) { indxRes = INDEX_CONTROL.CLBX_COMP_VISIBLED; } else if (strId.Equals(INDEX_CONTROL.CLBX_PARAMETER_VISIBLED.ToString()) == true) { indxRes = INDEX_CONTROL.CLBX_PARAMETER_VISIBLED; } else { throw new Exception(@"PanelTaskTepValues::getIndexControl () - не найден объект 'CheckedListBox'..."); } return(indxRes); }
protected override void activateCheckedHandler(bool bActive, INDEX_ID idToActivate) { INDEX_CONTROL indxCtrl = INDEX_CONTROL.UNKNOWN; TreeViewTaskTepCalcParameters tv = null; indxCtrl = getIndexControlOfIndexID(idToActivate); if (indxCtrl == INDEX_CONTROL.CLBX_PARAMETER_CALCULATED) { tv = (Controls.Find(indxCtrl.ToString(), true)[0] as TreeViewTaskTepCalcParameters); tv.ActivateCheckedHandler(bActive); if (bActive == true) { //tv.NodeSelect += new DelegateIntFunc (onNodeSelect); tv.ItemCheck += new DelegateIntIntFunc(onItemCheck); } else { //tv.NodeSelect -= onNodeSelect; tv.ItemCheck -= onItemCheck; } } else { base.activateCheckedHandler(bActive, idToActivate); } }
//private void onSelectedIndexChanged(object obj, EventArgs ev) //{ //} //protected virtual void addItem(INDEX_ID indxId, Control ctrl, int id, string text, bool bChecked) //{ // (ctrl as CheckedListBoxTaskTepValues).AddItem(id, text, bChecked); //} /// <summary> /// Обработчик события - изменение значения из списка признаков отображения/снятия_с_отображения /// </summary> /// <param name="obj">Объект, инициировавший событие (список)</param> /// <param name="ev">Аргумент события</param> protected override void onItemCheck(object obj, EventArgs ev) { ItemCheckedParametersEventArgs.TYPE type; INDEX_CONTROL indxCtrl = INDEX_CONTROL.UNKNOWN; if (Enum.IsDefined(typeof(INDEX_CONTROL), (obj as Control).Name) == true) { indxCtrl = (INDEX_CONTROL)Enum.Parse(typeof(INDEX_CONTROL), (obj as Control).Name); switch (indxCtrl) { case INDEX_CONTROL.CLBX_COMP_CALCULATED: case INDEX_CONTROL.MIX_PARAMETER_CALCULATED: type = ItemCheckedParametersEventArgs.TYPE.ENABLE; break; case INDEX_CONTROL.CLBX_COMP_VISIBLED: case INDEX_CONTROL.CLBX_PARAMETER_VISIBLED: default: type = ItemCheckedParametersEventArgs.TYPE.VISIBLE; break; } PerformItemCheck((obj as IControl).SelectedId, type, (ev as ItemCheckEventArgs).NewValue); } else { Logging.Logg().Error(string.Format(@""), Logging.INDEX_MESSAGE.NOT_SET); } }
/// <summary> /// Кол-во дней с учетом високосные/не_високосные годы в режиме «ГОД». /// </summary> /// <param name="indx">индекс контрола</param> private void cbxYearMapping(INDEX_CONTROL indx) { switch (indx) { case INDEX_CONTROL.DAY: break; case INDEX_CONTROL.MONTH: break; case INDEX_CONTROL.YEAR: if (DateTime.IsLeapYear(_value[(int)INDEX_VALUE.CURRENT].Year)) { m_tsLeading = TimeSpan.FromDays((double)INDEX_LEAP_YEAR.LEAP) - TimeSpan.FromDays(1); } else { m_tsLeading = TimeSpan.FromDays((double)INDEX_LEAP_YEAR.NOT_LEAP) - TimeSpan.FromDays(1); } break; case INDEX_CONTROL.HOUR: break; default: break; } }
/// <summary> /// Найти элемент управления на панели идентификатору /// </summary> /// <param name="indxCtrl">Идентификатор элемента управления</param> /// <returns></returns> protected Control find(INDEX_CONTROL indxCtrl) { Control ctrlRes = null; ctrlRes = Controls.Find(indxCtrl.ToString(), true)[0]; return(ctrlRes); }
/// <summary> /// Очистить /// </summary> public override void Clear() { base.Clear(); INDEX_CONTROL[] arIndxControlToClear = new INDEX_CONTROL[] { INDEX_CONTROL.CLBX_COMP_VISIBLED }; Clear(arIndxControlToClear); }
/// <summary> /// Обработчик события - изменения значения в "ведущем" календаре /// </summary> /// <param name="obj">Объект, инициировавший событие</param> /// <param name="ev">Аргумент события</param> private void leading_ValueChanged(object obj, EventArgs ev) { HDateTimePicker objLeading = obj as HDateTimePicker; ComboBox cbxYear = null , cbxMonth = null , cbxDay = null , cbxHour = null; int iDiffYear = -1 , cntDayInMonth = -1; INDEX_CONTROL indx = (ev as EventDatePartArgs).m_index; //??? учитывать значение в "ведущем" календаре iDiffYear = objLeading.Value.Year - _value[(int)INDEX_VALUE.CURRENT].Year; _value[(int)INDEX_VALUE.PREVIOUS] = _value[(int)INDEX_VALUE.CURRENT]; cbxYearMapping(indx); _value[(int)INDEX_VALUE.CURRENT] = objLeading.Value + m_tsLeading; //??? учитывать значение в "ведущем" календаре iDiffYear -= objLeading.Value.Year - _value[(int)INDEX_VALUE.CURRENT].Year; cbxYear = Controls.Find(INDEX_CONTROL.YEAR.ToString(), true)[0] as ComboBox; cbxMonth = Controls.Find(INDEX_CONTROL.MONTH.ToString(), true)[0] as ComboBox; cbxDay = Controls.Find(INDEX_CONTROL.DAY.ToString(), true)[0] as ComboBox; cbxHour = Controls.Find(INDEX_CONTROL.HOUR.ToString(), true)[0] as ComboBox; cbxYear.SelectedIndexChanged -= m_arSelectIndexChangedHandlers[(int)INDEX_CONTROL.YEAR]; cbxMonth.SelectedIndexChanged -= m_arSelectIndexChangedHandlers[(int)INDEX_CONTROL.MONTH]; cbxDay.SelectedIndexChanged -= m_arSelectIndexChangedHandlers[(int)INDEX_CONTROL.DAY]; cbxHour.SelectedIndexChanged -= m_arSelectIndexChangedHandlers[(int)INDEX_CONTROL.HOUR]; try { cbxYear.SelectedIndex += iDiffYear; cbxMonth.SelectedIndex = _value[(int)INDEX_VALUE.CURRENT].Month - 1; cntDayInMonth = DateTime.DaysInMonth(_value[(int)INDEX_VALUE.CURRENT].Year, _value[(int)INDEX_VALUE.CURRENT].Month); //if ((ev as EventDatePartArgs).m_index == INDEX_CONTROL.MONTH) cbxDayMapping(cntDayInMonth, false); //else // cbxDay.SelectedIndex = _value[(int)INDEX_VALUE.CURRENT].Day - 1; cbxHour.SelectedIndex = _value[(int)INDEX_VALUE.CURRENT].Hour; // == 0 ? _value[(int)INDEX_VALUE.CURRENT].Hour : _value[(int)INDEX_VALUE.CURRENT].Hour - 1; } catch (Exception e) { Logging.Logg().Exception(e, @"HDateTimePicker::leading_ValueChanged (INDEX_CONTROL=" + (ev as EventDatePartArgs).m_index + @") - ...", Logging.INDEX_MESSAGE.NOT_SET); } cbxYear.SelectedIndexChanged += m_arSelectIndexChangedHandlers[(int)INDEX_CONTROL.YEAR]; cbxMonth.SelectedIndexChanged += m_arSelectIndexChangedHandlers[(int)INDEX_CONTROL.MONTH]; cbxDay.SelectedIndexChanged += m_arSelectIndexChangedHandlers[(int)INDEX_CONTROL.DAY]; cbxHour.SelectedIndexChanged += m_arSelectIndexChangedHandlers[(int)INDEX_CONTROL.HOUR]; ValueChanged(this, EventArgs.Empty); }
private void clearComponents() { INDEX_CONTROL[] arIndxToClear = new INDEX_CONTROL[] { INDEX_CONTROL.CLBX_COMP_CALCULATED , INDEX_CONTROL.CLBX_COMP_VISIBLED }; for (int i = 0; i < arIndxToClear.Length; i++) { clear(arIndxToClear[i]); } }
private void clearParameters() { INDEX_CONTROL[] arIndxToClear = new INDEX_CONTROL[] { INDEX_CONTROL.MIX_PARAMETER_CALCULATED , INDEX_CONTROL.CLBX_PARAMETER_VISIBLED }; for (int i = 0; i < arIndxToClear.Length; i++) { clear(arIndxToClear[i]); } }
private void setButtonEnabled(INDEX_CONTROL indx, bool value) { Control ctrl = null; ctrl = findControl(indx.ToString()); if (!(ctrl.Enabled == value)) { ctrl.Enabled = value; } else { ; } }
private void InitializeComponent() { this.SuspendLayout(); //Добавить кнопки INDEX_CONTROL i = INDEX_CONTROL.BUTTON_SAVE; for (i = INDEX_CONTROL.BUTTON_SAVE; i < (INDEX_CONTROL.BUTTON_UPDATE + 1); i++) { addButton(i.ToString(), (int)i, m_arButtonText[(int)i]); } //Добавить "список" словарных величин DataGridView dgv = new DataGridView(); dgv.Name = INDEX_CONTROL.DGV_fTABLE.ToString(); dgv.Dock = DockStyle.Fill; //Разместить эл-т упр-я this.Controls.Add(dgv, 1, 0); this.SetColumnSpan(dgv, 4); this.SetRowSpan(dgv, 13); //Запретить выделение "много" строк dgv.MultiSelect = false; //Установить режим выделения - "полная" строка dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //Установить режим "невидимые" заголовки столбцов dgv.ColumnHeadersVisible = true; //Отменить возможность добавления строк dgv.AllowUserToAddRows = false; //Отменить возможность удаления строк dgv.AllowUserToDeleteRows = false; //Отменить возможность изменения порядка следования столбцов строк dgv.AllowUserToOrderColumns = false; //Не отображать заголовки строк dgv.RowHeadersVisible = false; addLabelDesc(INDEX_CONTROL.LABEL_DESC.ToString()); this.ResumeLayout(); //Обработчика нажатия кнопок ((Button)Controls.Find(INDEX_CONTROL.BUTTON_ADD.ToString(), true)[0]).Click += new System.EventHandler(HPanelfTable_btnAdd_Click); ((Button)Controls.Find(INDEX_CONTROL.BUTTON_DELETE.ToString(), true)[0]).Click += new System.EventHandler(HPanelfTAble_btnDelete_Click); ((Button)Controls.Find(INDEX_CONTROL.BUTTON_SAVE.ToString(), true)[0]).Click += new System.EventHandler(HPanelTepCommon_btnSave_Click); ((Button)Controls.Find(INDEX_CONTROL.BUTTON_UPDATE.ToString(), true)[0]).Click += new System.EventHandler(HPanelTepCommon_btnUpdate_Click); }
/// <summary> /// Обрабоотка клика по кнопке результат /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void PluginPrjTepFTable_ClickRez(object sender, EventArgs e) { string text = string.Empty; int m_indx = -1 , countArg = -1; //string text = ((TextBox)Controls.Find(INDEX_CONTROL.TEXTBOX_A1.ToString(), true)[0]).Text; //int m_indx = nameALG.IndexOf(":"); //int countArg = Convert.ToInt32(nameALG[m_indx + 1].ToString()); //ArgApproxi = new string[countArg + 1]; for (INDEX_CONTROL indx = INDEX_CONTROL.TEXTBOX_A1; indx < (INDEX_CONTROL.TEXTBOX_F + 1); indx++) { TextBox tbValue = Controls.Find(indx.ToString(), true)[0] as TextBox; } }
/// <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); }
/// <summary> /// Обработчик события - изменение значения любого из компонентов даты/времени /// </summary> private void onSelectedIndexChanged(INDEX_CONTROL indx) { //Проверить наличие ведущего объекта if (!(m_objLeading == null)) { // изменить разность между собственным значением и значения ведущего объекта m_tsLeading = _value[(int)INDEX_VALUE.CURRENT] - m_objLeading.Value; } else { ; } // вызвать ВНЕШНИЙ обработчик события - изменение значения объекта // , но только один и только 1-ый из них // два обработчика когда объект ведущий (2-ой обработчик ведомого объекта) ValueChanged.GetInvocationList()[0].DynamicInvoke(this, new EventDatePartArgs() { m_index = indx }); }
public void AddNAlgParameter(TepCommon.HandlerDbTaskCalculate.NALG_PARAMETER nAlgPar) { CheckedListBoxTaskCalculate ctrl; bool bChecked = false; // в этих элементах управления размещаются элементы проекта - параметры алгоритма расчета INDEX_CONTROL[] arIndexControl = new INDEX_CONTROL[] { INDEX_CONTROL.MIX_PARAMETER_CALCULATED , INDEX_CONTROL.CLBX_PARAMETER_VISIBLED }; foreach (INDEX_CONTROL indxCtrl in arIndexControl) { ctrl = find(indxCtrl) as CheckedListBoxTaskCalculate; if (indxCtrl == INDEX_CONTROL.MIX_PARAMETER_CALCULATED) { bChecked = nAlgPar.m_bEnabled; } else if (indxCtrl == INDEX_CONTROL.CLBX_PARAMETER_VISIBLED) { bChecked = nAlgPar.m_bVisibled; } else { bChecked = false; } if (!(ctrl == null)) { (ctrl as CheckedListBoxTaskCalculate).AddItem(nAlgPar.m_Id, string.Format(@"[{0}]-{1}", nAlgPar.m_nAlg, nAlgPar.m_strNameShr), bChecked); } else { Logging.Logg().Error(@"PanelManagementTaskTepValues::AddNAlgParameter () - не найден элемент =" + indxCtrl.ToString(), Logging.INDEX_MESSAGE.NOT_SET); } } }
/// <summary> /// Добавить элемент компонент станции в списки /// , в соответствии с 'arIndexIdToAdd' /// </summary> /// <param name="id">Идентификатор компонента</param> /// <param name="text">Текст подписи к компоненту</param> /// <param name="arIndexIdToAdd">Массив индексов в списке </param> /// <param name="arChecked">Массив признаков состояния для элементов</param> public void AddComponent(TepCommon.HandlerDbTaskCalculate.TECComponent comp) { Control ctrl = null; bool bChecked = false; // в этих элементах управления размещаются элементы проекта - компоненты станции(оборудование) INDEX_CONTROL[] arIndexControl = new INDEX_CONTROL[] { INDEX_CONTROL.CLBX_COMP_CALCULATED , INDEX_CONTROL.CLBX_COMP_VISIBLED }; foreach (INDEX_CONTROL indxCtrl in arIndexControl) { ctrl = find(indxCtrl); if (indxCtrl == INDEX_CONTROL.CLBX_COMP_CALCULATED) { bChecked = comp.m_bEnabled; } else if (indxCtrl == INDEX_CONTROL.CLBX_COMP_VISIBLED) { bChecked = comp.m_bVisibled; } else { bChecked = false; } if (!(ctrl == null)) { (ctrl as CheckedListBoxTaskCalculate).AddItem(comp.m_Id, comp.m_nameShr, bChecked); } else { Logging.Logg().Error(@"PanelManagementTaskTepValues::AddComponent () - не найден элемент для INDEX_ID=" + indxCtrl.ToString(), Logging.INDEX_MESSAGE.NOT_SET); } } }
private void InitializeComponent() { Control ctrl = null; this.SuspendLayout(); //Добавить кропки INDEX_CONTROL i = INDEX_CONTROL.BUTTON_SAVE; for (i = INDEX_CONTROL.BUTTON_SAVE; i < (INDEX_CONTROL.BUTTON_BREAK + 1); i++) { addButton(i.ToString(), (int)i, m_arButtonText[(int)i]); } //TreeView ctrl = new TreeView_Users(false); ctrl.Name = INDEX_CONTROL.TREE_DICT_ITEM.ToString(); ctrl.Dock = DockStyle.Fill; this.Controls.Add(ctrl, 1, 0); this.SetColumnSpan(ctrl, 6); this.SetRowSpan(ctrl, 13); //DGV ctrl = new DataGridView_Prop_Text_Check(); ctrl.Name = INDEX_CONTROL.DGV_DICT_PROP.ToString(); ctrl.Dock = DockStyle.Fill; this.Controls.Add(ctrl, 7, 0); this.SetColumnSpan(ctrl, 6); this.SetRowSpan(ctrl, 10); addLabelDesc("PANEL_DESC"); this.ResumeLayout(); ((Button)Controls.Find(INDEX_CONTROL.BUTTON_SAVE.ToString(), true)[0]).Enabled = false; //Обработчика нажатия кнопок ((Button)Controls.Find(INDEX_CONTROL.BUTTON_SAVE.ToString(), true)[0]).Click += new System.EventHandler(this.btnSave_Click); ((Button)Controls.Find(INDEX_CONTROL.BUTTON_BREAK.ToString(), true)[0]).Click += new System.EventHandler(this.btnBreak_Click); ((DataGridView_Prop_Text_Check)Controls.Find(INDEX_CONTROL.DGV_DICT_PROP.ToString(), true)[0]).EventCellValueChanged += new DataGridView_Prop.DataGridView_Prop_ValuesCellValueChangedEventHandler(this.dgvProp_CellEndEdit); }
/// <summary> /// Найти элемент управления на панели идентификатору /// </summary> /// <param name="indxCtrl">Идентификатор элемента управления</param> /// <returns>элемент панели</returns> protected Control find(INDEX_CONTROL indxCtrl) { return(findControl(indxCtrl.ToString())); }
/// <summary> /// Инициализация компонентов /// </summary> private void InitializeComponent() { DataGridView dgv = null; //Control ctrl = null; this.SuspendLayout(); //Добавить кнопки INDEX_CONTROL i = INDEX_CONTROL.BUTTON_SAVE; for (i = INDEX_CONTROL.BUTTON_SAVE; i < (INDEX_CONTROL.BUTTON_UPDATE + 1); i++) { addButton(i.ToString(), (int)i, m_arButtonText[(int)i]); } //Поиск функции TextBox txtbx_find = new TextBox(); txtbx_find.Name = INDEX_CONTROL.TEXTBOX_FIND.ToString(); txtbx_find.Dock = DockStyle.Fill; //Подпись поиска System.Windows.Forms.Label lbl_find = new System.Windows.Forms.Label(); lbl_find.Name = INDEX_CONTROL.LABEL_FIND.ToString(); lbl_find.Dock = DockStyle.Bottom; (lbl_find as System.Windows.Forms.Label).Text = @"Поиск"; //Группировка поиска //и его подписи TableLayoutPanel tlp = new TableLayoutPanel(); tlp.Name = INDEX_CONTROL.PANEL_FIND.ToString(); tlp.Dock = DockStyle.Fill; tlp.AutoSize = true; tlp.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowOnly; tlp.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 15F)); tlp.Controls.Add(lbl_find); tlp.Controls.Add(txtbx_find); this.Controls.Add(tlp, 1, 0); this.SetColumnSpan(tlp, 4); this.SetRowSpan(tlp, 1); //Таблица с функциями dgv = new DataGridView(); dgv.Name = INDEX_CONTROL.DGV_NALG.ToString(); i = INDEX_CONTROL.DGV_NALG; dgv.Dock = DockStyle.Fill; //Разместить эл-т упр-я this.Controls.Add(dgv, 1, 1); this.SetColumnSpan(dgv, 4); this.SetRowSpan(dgv, 5); dgv.ReadOnly = true; //Запретить выделение "много" строк dgv.MultiSelect = false; //Установить режим выделения - "полная" строка dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //Установить режим "невидимые" заголовки столбцов dgv.ColumnHeadersVisible = true; //Отменить возможность добавления строк dgv.AllowUserToAddRows = false; //Отменить возможность удаления строк dgv.AllowUserToDeleteRows = false; //Отменить возможность изменения порядка следования столбцов строк dgv.AllowUserToOrderColumns = false; //Не отображать заголовки строк dgv.RowHeadersVisible = false; //Ширина столбцов под видимую область dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; //Отменить возможность изменения высоты строк dgv.AllowUserToResizeRows = false; dgv.ColumnCount = 3; dgv.Columns[0].Name = "Функция"; dgv.Columns[1].Name = "Описание"; dgv.Columns[2].Name = "ID_REC"; dgv.Columns[2].Visible = false; //Таблица с реперными точками dgv = new DataGridView(); dgv.Name = INDEX_CONTROL.DGV_VALUES.ToString(); i = INDEX_CONTROL.DGV_VALUES; dgv.Dock = DockStyle.Fill; //Разместить эл-т упр-я this.Controls.Add(dgv, 1, 6); this.SetColumnSpan(dgv, 4); this.SetRowSpan(dgv, 4); dgv.ReadOnly = true; //Запретить выделение "много" строк dgv.MultiSelect = false; //Установить режим выделения - "полная" строка dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //Установить режим "невидимые" заголовки столбцов dgv.ColumnHeadersVisible = true; //Отменить возможность добавления строк dgv.AllowUserToAddRows = false; //Отменить возможность удаления строк dgv.AllowUserToDeleteRows = false; //Отменить возможность изменения порядка следования столбцов строк dgv.AllowUserToOrderColumns = false; //Не отображать заголовки строк dgv.RowHeadersVisible = false; //Ширина столбцов под видимую область dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; //Отменить возможность изменения высоты строк dgv.AllowUserToResizeRows = false; dgv.ColumnCount = 5; dgv.Columns[0].Name = "A1"; dgv.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgv.Columns[1].Name = "A2"; dgv.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgv.Columns[2].Name = "A3"; dgv.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgv.Columns[3].Name = "F"; dgv.Columns[3].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgv.Columns[4].Name = "ID_REC"; dgv.Columns[4].Visible = false; //Панель отображения графика this.m_zGraph_fTABLE = new ZedGraphFTable(); this.m_zGraph_fTABLE.m_This.Name = INDEX_CONTROL.ZGRAPH_fTABLE.ToString(); this.m_zGraph_fTABLE.m_This.Dock = DockStyle.Fill; this.Controls.Add(this.m_zGraph_fTABLE.m_This, 2, 0); this.SetColumnSpan(this.m_zGraph_fTABLE.m_This, 8); this.SetRowSpan(this.m_zGraph_fTABLE.m_This, 10); this.m_zGraph_fTABLE.m_This.AutoScaleMode = AutoScaleMode.Font; // System.Windows.Forms.ComboBox cmb_bxParam = new ComboBox(); cmb_bxParam.Name = INDEX_CONTROL.COMBOBOX_PARAM.ToString(); cmb_bxParam.Dock = DockStyle.Fill; //Панель группировки калькулятора TableLayoutPanel tabl = new TableLayoutPanel(); tabl.Name = INDEX_CONTROL.TABLELAYOUTPANEL_CALC.ToString(); tabl.Dock = DockStyle.Fill; tabl.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.None; tabl.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; //Подписи для калькулятора System.Windows.Forms.Label lblValue = new System.Windows.Forms.Label(); lblValue.Dock = DockStyle.Bottom; lblValue.Text = @"Значение A1"; tabl.Controls.Add(lblValue, 0, 0); // lblValue = new System.Windows.Forms.Label(); lblValue.Dock = DockStyle.Bottom; lblValue.Text = @"Значение A2"; tabl.Controls.Add(lblValue, 1, 0); // lblValue = new System.Windows.Forms.Label(); lblValue.Dock = DockStyle.Bottom; lblValue.Text = @"Значение A3"; tabl.Controls.Add(lblValue, 2, 0); // lblValue = new System.Windows.Forms.Label(); lblValue.Dock = DockStyle.Bottom; lblValue.Text = @"Результат"; tabl.Controls.Add(lblValue, 0, 2); // lblValue = new System.Windows.Forms.Label(); lblValue.Dock = DockStyle.Bottom; (lblValue as System.Windows.Forms.Label).Text = @"Значение F"; tabl.Controls.Add(lblValue, 3, 0); //Текстовые поля для данных калькулятора TextBox tbValue = new TextBox(); tbValue.Name = INDEX_CONTROL.TEXTBOX_A1.ToString(); tbValue.TextChanged += tbCalcValue_onTextChanged; tbValue.TextAlign = HorizontalAlignment.Right; tbValue.Dock = DockStyle.Fill; tabl.Controls.Add(tbValue, 0, 1); tbValue = new TextBox(); tbValue.Name = INDEX_CONTROL.TEXTBOX_A2.ToString(); tbValue.TextChanged += tbCalcValue_onTextChanged; tbValue.TextAlign = HorizontalAlignment.Right; tbValue.Dock = DockStyle.Fill; tabl.Controls.Add(tbValue, 1, 1); tbValue = new TextBox(); tbValue.Name = INDEX_CONTROL.TEXTBOX_A3.ToString(); tbValue.TextChanged += tbCalcValue_onTextChanged; tbValue.TextAlign = HorizontalAlignment.Right; tbValue.Dock = DockStyle.Fill; tabl.Controls.Add(tbValue, 2, 1); tbValue = new TextBox(); tbValue.Name = INDEX_CONTROL.TEXTBOX_F.ToString(); tbValue.TextChanged += tbCalcValue_onTextChanged; tbValue.TextAlign = HorizontalAlignment.Right; tbValue.Dock = DockStyle.Fill; tbValue.ReadOnly = true; tabl.Controls.Add(tbValue, 3, 1); tbValue = new TextBox(); tbValue.Name = INDEX_CONTROL.TEXTBOX_REZULT.ToString(); tbValue.Dock = DockStyle.Fill; tbValue.ReadOnly = true; tabl.Controls.Add(tbValue, 0, 3); tabl.SetColumnSpan(tbValue, 2); Button btn_rez = new Button(); btn_rez.Name = INDEX_CONTROL.BUTTON_CALC.ToString(); btn_rez.Text = "REZ"; btn_rez.Dock = DockStyle.Top; tabl.Controls.Add(btn_rez, 3, 3); tabl.RowCount = 4; tabl.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize)); tabl.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize)); tabl.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize)); tabl.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); tabl.ColumnCount = 4; tabl.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); tabl.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); tabl.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); tabl.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); // GroupBox gpBoxCalc = new GroupBox(); gpBoxCalc.Name = INDEX_CONTROL.GRPBOX_CALC.ToString(); gpBoxCalc.Text = @"Калькулятор значений"; gpBoxCalc.Dock = DockStyle.Fill; gpBoxCalc.Controls.Add(tabl); this.Controls.Add(gpBoxCalc, 0, 10); this.SetColumnSpan(gpBoxCalc, 5); this.SetRowSpan(gpBoxCalc, 3); // addLabelDesc(INDEX_CONTROL.LABEL_DESC.ToString()); ResumeLayout(false); PerformLayout(); //Обработчика нажатия кнопок ((Button)Controls.Find(INDEX_CONTROL.BUTTON_ADD.ToString(), true)[0]).Click += new System.EventHandler(HPanelfTable_btnAdd_Click); ((Button)Controls.Find(INDEX_CONTROL.BUTTON_DELETE.ToString(), true)[0]).Click += new System.EventHandler(HPanelfTAble_btnDelete_Click); ((Button)Controls.Find(INDEX_CONTROL.BUTTON_SAVE.ToString(), true)[0]).Click += new System.EventHandler(HPanelTepCommon_btnSave_Click); ((Button)Controls.Find(INDEX_CONTROL.BUTTON_UPDATE.ToString(), true)[0]).Click += new System.EventHandler(HPanelTepCommon_btnUpdate_Click); ((Button)Controls.Find(INDEX_CONTROL.BUTTON_CALC.ToString(), true)[0]).Click += new EventHandler(PluginPrjTepFTable_ClickRez); //Обработчики событий // для отображения таблиц ((DataGridView)Controls.Find(INDEX_CONTROL.DGV_NALG.ToString(), true)[0]).SelectionChanged += new EventHandler(dgvnALG_onSelectionChanged); ((DataGridView)Controls.Find(INDEX_CONTROL.DGV_VALUES.ToString(), true)[0]).SelectionChanged += new EventHandler(dgvValues_onSelectionChanged); // для поля ввода при поиске функции ((TextBox)Controls.Find(INDEX_CONTROL.TEXTBOX_FIND.ToString(), true)[0]).TextChanged += new EventHandler(PluginPrjTepFTable_TextChanged); }
/// <summary> /// Изменить доступность элементов управления /// </summary> private void enable() { Control ctrl = null; bool bEnabled = false; for (INDEX_CONTROL indx = (INDEX_CONTROL.UNKNOWN + 1); indx < INDEX_CONTROL.COUNT; indx++) { ctrl = Controls.Find(indx.ToString(), true)[0]; if (Mode == MODE.UNKNOWN) { ctrl.Enabled = false; } else { bEnabled = _matrixEnabled[(int)_mode, (int)indx]; if ((!(m_objLeading == null)) && (bEnabled == true)) { switch (Mode) { case MODE.DAY: switch (indx) { case INDEX_CONTROL.DAY: //bEnabled = false; break; case INDEX_CONTROL.MONTH: //bEnabled = false; break; case INDEX_CONTROL.YEAR: //bEnabled = false; break; case INDEX_CONTROL.HOUR: bEnabled = false; break; default: break; } break; case MODE.MONTH: switch (indx) { case INDEX_CONTROL.DAY: bEnabled = false; break; case INDEX_CONTROL.MONTH: //bEnabled = false; break; case INDEX_CONTROL.YEAR: //bEnabled = false; break; case INDEX_CONTROL.HOUR: bEnabled = false; break; default: break; } break; case MODE.YEAR: switch (indx) { case INDEX_CONTROL.DAY: bEnabled = false; break; case INDEX_CONTROL.MONTH: bEnabled = false; break; case INDEX_CONTROL.YEAR: //bEnabled = false; break; case INDEX_CONTROL.HOUR: bEnabled = false; break; default: break; } break; case MODE.HOUR: // все включено break; default: break; } } else { ; } ctrl.Enabled = bEnabled; } } }
private void InitializeComponent() { Control ctrl = null; this.SuspendLayout(); //Добавить кропки INDEX_CONTROL i = INDEX_CONTROL.BUTTON_SAVE; for (i = INDEX_CONTROL.BUTTON_SAVE; i < (INDEX_CONTROL.BUTTON_UPDATE + 1); i++) { addButton(i.ToString(), (int)i, m_arButtonText[(int)i]); } //Добавить "список" словарных величин ctrl = new DataGridView(); ctrl.Name = INDEX_CONTROL.DGV_PRJ_ITEM.ToString(); DataGridView dgv = ctrl as DataGridView; dgv.Dock = DockStyle.Fill; //Разместить эл-т упр-я this.Controls.Add(dgv, 1, 0); this.SetColumnSpan(dgv, 4); this.SetRowSpan(dgv, 13); //Добавить столбец dgv.Columns.AddRange(new DataGridViewColumn[] { new DataGridViewTextBoxColumn() }); //Запретить выделение "много" строк dgv.MultiSelect = false; //Установить режим выделения - "полная" строка dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //Установить режим "невидимые" заголовки столбцов dgv.ColumnHeadersVisible = false; //Отменить возможность добавления строк dgv.AllowUserToAddRows = false; //Отменить возможность удаления строк dgv.AllowUserToDeleteRows = false; //Отменить возможность изменения порядка следования столбцов строк dgv.AllowUserToOrderColumns = false; //Не отображать заголовки строк dgv.RowHeadersVisible = false; //Не отображать заголовки столбцов dgv.ColumnHeadersVisible = false; //1-ый столбец (только "для чтения") dgv.Columns[0].ReadOnly = true; //Ширина столбца по ширине род./элемента управления dgv.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; //Обработчик события "Выбор строки" dgv.SelectionChanged += new EventHandler(HPanelEditTree_dgvPrjItemSelectionChanged); //Добавить "список" свойств словарной величины ctrl = new DataGridView(); ctrl.Name = INDEX_CONTROL.DGV_PRJ_ACCESS.ToString(); dgv = ctrl as DataGridView; dgv.Dock = DockStyle.Fill; //Разместить эл-т упр-я this.Controls.Add(dgv, 5, 0); this.SetColumnSpan(dgv, 8); this.SetRowSpan(dgv, 10); //Добавить столбцы (dgv).Columns.AddRange(new DataGridViewColumn[] { new DataGridViewTextBoxColumn() , new DataGridViewCheckBoxColumn() }); //Отменить возможность добавления строк dgv.AllowUserToAddRows = false; //Отменить возможность удаления строк dgv.AllowUserToDeleteRows = false; //Отменить возможность изменения порядка следования столбцов строк dgv.AllowUserToOrderColumns = false; //Не отображать заголовки строк dgv.RowHeadersVisible = false; //1-ый столбец (только "для чтения") dgv.Columns[0].HeaderText = @"Свойство"; dgv.Columns[0].ReadOnly = true; //Ширина столбца по ширине род./элемента управления dgv.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; //2-ой столбец dgv.Columns[1].HeaderText = @"Доступ"; //Установить режим выделения - "полная" строка dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //Ширина столбца по ширине род./элемента управления dgv.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; //Обработчик события "Выбор строки" dgv.SelectionChanged += new EventHandler(HPanelEditTree_dgvPrjAccessSelectionChanged); //Обработчик события "Редактирование свойства" //dgv.CellEndEdit += new DataGridViewCellEventHandler(HPanelEditTree_dgvPrjAccessCellEndEdit); dgv.CellValueChanged += new DataGridViewCellEventHandler(HPanelEditTree_dgvPrjAccessCellValueChanged); addLabelDesc(INDEX_CONTROL.LABEL_ACCESS_DESC.ToString()); this.ResumeLayout(); //Обработчика нажатия кнопок ((Button)Controls.Find(INDEX_CONTROL.BUTTON_SAVE.ToString(), true)[0]).Click += new System.EventHandler(HPanelTepCommon_btnSave_Click); ((Button)Controls.Find(INDEX_CONTROL.BUTTON_UPDATE.ToString(), true)[0]).Click += new System.EventHandler(HPanelTepCommon_btnUpdate_Click); }
/// <summary> /// Обязательный метод для поддержки конструктора - не изменяйте /// содержимое данного метода при помощи редактора кода. /// </summary> private void InitializeComponent() { this.SuspendLayout(); //Добавить кнопки INDEX_CONTROL i = INDEX_CONTROL.BUTTON_ADD; for (i = INDEX_CONTROL.BUTTON_ADD; i < (INDEX_CONTROL.BUTTON_UPDATE + 1); i++) { addButton(i.ToString(), (int)i, m_arButtonText[(int)i]); } DataGridView dgv = new DataGridView(); //Добавить "список" словарных величин dgv.Name = INDEX_CONTROL.DGV_DICT_ITEM.ToString(); i = INDEX_CONTROL.DGV_DICT_ITEM; dgv.Dock = DockStyle.Fill; //Разместить эл-т упр-я this.Controls.Add(dgv, 1, 0); this.SetColumnSpan(dgv, 4); this.SetRowSpan(dgv, 13); //Добавить столбец dgv.Columns.AddRange(new DataGridViewColumn[] { new DataGridViewTextBoxColumn() }); //Запретить выделение "много" строк dgv.MultiSelect = false; //Установить режим выделения - "полная" строка dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //Установить режим "невидимые" заголовки столбцов dgv.ColumnHeadersVisible = false; //Ширина столбца по ширине род./элемента управления dgv.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; //Обработчик события "Выбор строки" dgv.SelectionChanged += new EventHandler(HPanelEditList_dgvDictEditSelectionChanged); ////Обработчик события "Редактирование строки" //dgv.CellStateChanged += new DataGridViewCellEventHandler(HPanelEdit_dgvDictEditCellStateChanged); //Обработчик события "Редактирование строки" dgv.CellEndEdit += new DataGridViewCellEventHandler(HPanelEditList_dgvDictEditCellEndEdit); //Запретить удаление строк dgv.AllowUserToDeleteRows = false; //Добавить "список" свойств словарной величины dgv = new DataGridView(); dgv.Name = INDEX_CONTROL.DGV_DICT_PROP.ToString(); dgv.Dock = DockStyle.Fill; //Разместить эл-т упр-я this.Controls.Add(dgv, 5, 0); this.SetColumnSpan(dgv, 8); this.SetRowSpan(dgv, 10); //Добавить столбцы dgv.Columns.AddRange(new DataGridViewColumn[] { new DataGridViewTextBoxColumn() , new DataGridViewTextBoxColumn() }); //1-ый столбец dgv.Columns[0].HeaderText = @"Свойство"; dgv.Columns[0].ReadOnly = true; //Ширина столбца по ширине род./элемента управления dgv.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; //2-ой столбец dgv.Columns[1].HeaderText = @"Значение"; //Установить режим выделения - "полная" строка dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //Ширина столбца по ширине род./элемента управления dgv.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; //Обработчик события "Выбор строки" dgv.SelectionChanged += new EventHandler(panelEdit_dgvPropSelectionChanged); ////Обработчик события "Редактирование свойства" //dgv.CellStateChanged += new DataGridViewCellStateChangedEventHandler(HPanelEdit_dgvDictPropStateChanged); //Обработчик события "Редактирование свойства" dgv.CellEndEdit += new DataGridViewCellEventHandler(HPanelEdit_dgvDictPropCellEndEdit); //Запретить удаление строк dgv.AllowUserToDeleteRows = false; //Запретить вставку строк dgv.AllowUserToAddRows = false; dgv.MultiSelect = false; addLabelDesc(INDEX_CONTROL.LABEL_PROP_DESC.ToString()); this.ResumeLayout(); //Обработчика нажатия кнопок ((Button)Controls.Find(INDEX_CONTROL.BUTTON_ADD.ToString(), true)[0]).Click += new System.EventHandler(HPanelEditList_btnAdd_Click); ((Button)Controls.Find(INDEX_CONTROL.BUTTON_DELETE.ToString(), true)[0]).Click += new System.EventHandler(HPanelEditList_btnDelete_Click); ((Button)Controls.Find(INDEX_CONTROL.BUTTON_SAVE.ToString(), true)[0]).Click += new System.EventHandler(panelTepCommon_btnSave_onClick); ((Button)Controls.Find(INDEX_CONTROL.BUTTON_UPDATE.ToString(), true)[0]).Click += new System.EventHandler(panelTepCommon_btnUpdate_onClick); }
/// <summary> /// Инициализация элементов управления объекта (создание, размещение) /// </summary> private void InitializeComponent() { DataGridView dgv = null; // переменные для инициализации кнопок "Добавить", "Удалить" ASUTP.Control.DropDownButton btnDropDown = null; int iButtonDropDownMenuItem = -1; string strPartLabelButtonDropDownMenuItem = string.Empty; string[] arLabelButtonDropDownMenuItem = new string[] { @"точку", @"функцию" }; INDEX_CONTROL indxControlButtonDropDownMenuItem = INDEX_CONTROL.UNKNOWN; ToolStripItem menuItem; this.SuspendLayout(); //Добавить кнопки INDEX_CONTROL i = INDEX_CONTROL.BUTTON_SAVE; for (i = INDEX_CONTROL.BUTTON_ADD; i < (INDEX_CONTROL.BUTTON_UPDATE + 1); i++) { switch (i) { case INDEX_CONTROL.BUTTON_ADD: case INDEX_CONTROL.BUTTON_DELETE: btnDropDown = new ASUTP.Control.DropDownButton(); addButton(btnDropDown, i.ToString(), (int)i, m_arButtonText[(int)i]); btnDropDown.ContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(); if (i == INDEX_CONTROL.BUTTON_ADD) { strPartLabelButtonDropDownMenuItem = @"Добавить"; } else if (i == INDEX_CONTROL.BUTTON_DELETE) { strPartLabelButtonDropDownMenuItem = @"Удалить"; } else { ; } // п.меню для операции с точкой indxControlButtonDropDownMenuItem = i == INDEX_CONTROL.BUTTON_ADD ? INDEX_CONTROL.MENUITEM_ADD_POINT : i == INDEX_CONTROL.BUTTON_DELETE ? INDEX_CONTROL.MENUITEM_DELETE_POINT : INDEX_CONTROL.UNKNOWN; iButtonDropDownMenuItem = btnDropDown.ContextMenuStrip.Items.Add(new ToolStripMenuItem()); menuItem = btnDropDown.ContextMenuStrip.Items[iButtonDropDownMenuItem]; menuItem.Text = strPartLabelButtonDropDownMenuItem + @" " + arLabelButtonDropDownMenuItem[iButtonDropDownMenuItem]; menuItem.Name = indxControlButtonDropDownMenuItem.ToString(); // п.меню для операции с функцией indxControlButtonDropDownMenuItem = i == INDEX_CONTROL.BUTTON_ADD ? INDEX_CONTROL.MENUITEM_ADD_FUNCTION : i == INDEX_CONTROL.BUTTON_DELETE ? INDEX_CONTROL.MENUITEM_DELETE_FUNCTION : INDEX_CONTROL.UNKNOWN; iButtonDropDownMenuItem = btnDropDown.ContextMenuStrip.Items.Add(new ToolStripMenuItem()); menuItem = btnDropDown.ContextMenuStrip.Items[iButtonDropDownMenuItem]; menuItem.Text = strPartLabelButtonDropDownMenuItem + @" " + arLabelButtonDropDownMenuItem[iButtonDropDownMenuItem]; menuItem.Name = indxControlButtonDropDownMenuItem.ToString(); break; default: addButton(i.ToString(), (int)i, m_arButtonText[(int)i]); break; } } //заблокировать кнопку добавить //Button btn = ((Button)Controls.Find(INDEX_CONTROL.BUTTON_ADD.ToString(), true)[0]); //btn.Enabled = false; //Поиск функции TextBox txtbx_find = new TextBox(); txtbx_find.Name = INDEX_CONTROL.TEXTBOX_FIND.ToString(); txtbx_find.Dock = DockStyle.Fill; //Подпись поиска System.Windows.Forms.Label lbl_find = new System.Windows.Forms.Label(); lbl_find.Name = INDEX_CONTROL.LABEL_FIND.ToString(); lbl_find.Dock = DockStyle.Bottom; (lbl_find as System.Windows.Forms.Label).Text = @"Поиск"; //Группировка поиска //и его подписи TableLayoutPanel tlp = new TableLayoutPanel(); tlp.Name = INDEX_CONTROL.PANEL_FIND.ToString(); tlp.Dock = DockStyle.Fill; tlp.AutoSize = true; tlp.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowOnly; tlp.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 15F)); tlp.Controls.Add(lbl_find); tlp.Controls.Add(txtbx_find); this.Controls.Add(tlp, 1, 0); this.SetColumnSpan(tlp, 4); this.SetRowSpan(tlp, 1); //Таблица с функциями dgv = new DataGridView(); dgv.Name = INDEX_CONTROL.DGV_NALG.ToString(); i = INDEX_CONTROL.DGV_NALG; dgv.Dock = DockStyle.Fill; //Разместить эл-т упр-я this.Controls.Add(dgv, 1, 1); this.SetColumnSpan(dgv, 4); this.SetRowSpan(dgv, 5); dgv.ReadOnly = true; //Запретить выделение "много" строк dgv.MultiSelect = false; //Установить режим выделения - "полная" строка dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //Установить режим "невидимые" заголовки столбцов dgv.ColumnHeadersVisible = true; //Отменить возможность добавления строк dgv.AllowUserToAddRows = false; //Отменить возможность удаления строк dgv.AllowUserToDeleteRows = false; //Отменить возможность изменения порядка следования столбцов строк dgv.AllowUserToOrderColumns = false; //Не отображать заголовки строк dgv.RowHeadersVisible = false; //Ширина столбцов под видимую область dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; //Отменить возможность изменения высоты строк dgv.AllowUserToResizeRows = false; dgv.ColumnCount = 3; dgv.Columns[0].Name = "Функция"; dgv.Columns[1].Name = "Описание"; dgv.Columns[2].Name = "ID_REC"; dgv.Columns[2].Visible = false; dgv.CellMouseDoubleClick += dgv_CellMouseDoubleClickNALG; dgv.CellEndEdit += dgv_CellEndEditNALG; //Таблица с реперными точками dgv = new DataGridView(); dgv.Name = INDEX_CONTROL.DGV_VALUES.ToString(); i = INDEX_CONTROL.DGV_VALUES; dgv.Dock = DockStyle.Fill; //Разместить эл-т упр-я this.Controls.Add(dgv, 1, 6); this.SetColumnSpan(dgv, 4); this.SetRowSpan(dgv, 5); //Запретить редактирование dgv.ReadOnly = true; //Запретить выделение "много" строк dgv.MultiSelect = false; //Установить режим выделения - "полная" строка dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //Установить режим "невидимые" заголовки столбцов dgv.ColumnHeadersVisible = true; //Отменить возможность добавления строк dgv.AllowUserToAddRows = false; //Отменить возможность удаления строк dgv.AllowUserToDeleteRows = false; //Отменить возможность изменения порядка следования столбцов строк dgv.AllowUserToOrderColumns = false; //Не отображать заголовки строк dgv.RowHeadersVisible = false; //Ширина столбцов под видимую область dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; //Отменить возможность изменения высоты строк dgv.AllowUserToResizeRows = false; dgv.ColumnCount = 5; dgv.Columns[0].Name = "A1"; dgv.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgv.Columns[1].Name = "A2"; dgv.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgv.Columns[2].Name = "A3"; dgv.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgv.Columns[3].Name = "F"; dgv.Columns[3].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgv.Columns[4].Name = "ID_REC"; dgv.Columns[4].Visible = false; //обработчик нажатия мышки dgv.CellMouseDoubleClick += dgv_CellMouseDoubleClickValue; //обработчик редактирования ячейки dgv.CellEndEdit += dgv_CellEndEditValue; //Панель отображения графика this.m_zGraph_fTABLE = new ZedGraphFTable(); this.m_zGraph_fTABLE.m_This.Name = INDEX_CONTROL.ZGRAPH_fTABLE.ToString(); this.m_zGraph_fTABLE.m_This.Dock = DockStyle.Fill; this.Controls.Add(this.m_zGraph_fTABLE.m_This, 2, 0); this.SetColumnSpan(this.m_zGraph_fTABLE.m_This, 8); this.SetRowSpan(this.m_zGraph_fTABLE.m_This, 10); this.m_zGraph_fTABLE.m_This.AutoScaleMode = AutoScaleMode.Font; // System.Windows.Forms.ComboBox cmb_bxParam = new ComboBox(); cmb_bxParam.Name = INDEX_CONTROL.COMBOBOX_PARAM.ToString(); cmb_bxParam.Dock = DockStyle.Fill; //Панель группировки калькулятора TableLayoutPanel tabl = new TableLayoutPanel(); tabl.Name = INDEX_CONTROL.TABLELAYOUTPANEL_CALC.ToString(); tabl.Dock = DockStyle.Fill; tabl.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.None; tabl.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; //Подписи для калькулятора System.Windows.Forms.Label lblValue = new System.Windows.Forms.Label(); lblValue.Dock = DockStyle.Bottom; lblValue.Text = @"Значение A1"; tabl.Controls.Add(lblValue, 0, 0); // lblValue = new System.Windows.Forms.Label(); lblValue.Dock = DockStyle.Bottom; lblValue.Text = @"Значение A2"; tabl.Controls.Add(lblValue, 1, 0); // lblValue = new System.Windows.Forms.Label(); lblValue.Dock = DockStyle.Bottom; lblValue.Text = @"Значение A3"; tabl.Controls.Add(lblValue, 2, 0); //// //lblValue = new System.Windows.Forms.Label(); //lblValue.Dock = DockStyle.Bottom; //lblValue.Text = @"Результат"; //tabl.Controls.Add(lblValue, 0, 2); // lblValue = new System.Windows.Forms.Label(); lblValue.Dock = DockStyle.Bottom; (lblValue as System.Windows.Forms.Label).Text = @"Значение F"; tabl.Controls.Add(lblValue, 3, 0); //Текстовые поля для данных калькулятора TextBox tbValue = new TextBox(); tbValue.Name = INDEX_CONTROL.TEXTBOX_A1.ToString(); tbValue.TextChanged += tbCalcValue_onTextChanged; tbValue.TextAlign = HorizontalAlignment.Right; tbValue.Dock = DockStyle.Fill; tabl.Controls.Add(tbValue, 0, 1); tbValue = new TextBox(); tbValue.Name = INDEX_CONTROL.TEXTBOX_A2.ToString(); tbValue.TextChanged += tbCalcValue_onTextChanged; tbValue.TextAlign = HorizontalAlignment.Right; tbValue.Dock = DockStyle.Fill; tabl.Controls.Add(tbValue, 1, 1); tbValue = new TextBox(); tbValue.Name = INDEX_CONTROL.TEXTBOX_A3.ToString(); tbValue.TextChanged += tbCalcValue_onTextChanged; tbValue.TextAlign = HorizontalAlignment.Right; tbValue.Dock = DockStyle.Fill; tabl.Controls.Add(tbValue, 2, 1); tbValue = new TextBox(); tbValue.Name = INDEX_CONTROL.TEXTBOX_F.ToString(); //tbValue.TextChanged += tbCalcValue_onTextChanged; tbValue.TextAlign = HorizontalAlignment.Right; tbValue.Dock = DockStyle.Fill; tbValue.ReadOnly = true; tabl.Controls.Add(tbValue, 3, 1); tabl.RowCount = 4; tabl.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize)); tabl.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize)); tabl.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.AutoSize)); tabl.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); tabl.ColumnCount = 4; tabl.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); tabl.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); tabl.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); tabl.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); // GroupBox gpBoxCalc = new GroupBox(); gpBoxCalc.Name = INDEX_CONTROL.GRPBOX_CALC.ToString(); gpBoxCalc.Text = @"Калькулятор значений"; gpBoxCalc.Dock = DockStyle.Fill; gpBoxCalc.Controls.Add(tabl); this.Controls.Add(gpBoxCalc, 1, 11); this.SetColumnSpan(gpBoxCalc, 4); this.SetRowSpan(gpBoxCalc, 2); // addLabelDesc(INDEX_CONTROL.LABEL_DESC.ToString()); ResumeLayout(false); PerformLayout(); //Обработчика нажатия кнопок btnDropDown = ((Button)Controls.Find(INDEX_CONTROL.BUTTON_ADD.ToString(), true)[0]) as ASUTP.Control.DropDownButton; btnDropDown.Click += new System.EventHandler(btnAddToPoint_OnClick); menuItem = (btnDropDown.ContextMenuStrip.Items.Find(INDEX_CONTROL.MENUITEM_ADD_POINT.ToString(), true)[0]); menuItem.Click += new System.EventHandler(btnAddToPoint_OnClick); menuItem = (btnDropDown.ContextMenuStrip.Items.Find(INDEX_CONTROL.MENUITEM_ADD_FUNCTION.ToString(), true)[0]); menuItem.Click += new System.EventHandler(btnAddToFunction_OnClick); btnDropDown = ((Button)Controls.Find(INDEX_CONTROL.BUTTON_DELETE.ToString(), true)[0]) as ASUTP.Control.DropDownButton; btnDropDown.Click += new System.EventHandler(btnDeleteToPoint_OnClick); menuItem = (btnDropDown.ContextMenuStrip.Items.Find(INDEX_CONTROL.MENUITEM_DELETE_POINT.ToString(), true)[0]); menuItem.Click += new System.EventHandler(btnDeleteToPoint_OnClick); menuItem = (btnDropDown.ContextMenuStrip.Items.Find(INDEX_CONTROL.MENUITEM_DELETE_FUNCTION.ToString(), true)[0]); menuItem.Click += new System.EventHandler(btnDeleteToFunction_OnClick); ((Button)Controls.Find(INDEX_CONTROL.BUTTON_SAVE.ToString(), true)[0]).Click += new System.EventHandler(panelTepCommon_btnSave_onClick); ((Button)Controls.Find(INDEX_CONTROL.BUTTON_UPDATE.ToString(), true)[0]).Click += new System.EventHandler(panelTepCommon_btnUpdate_onClick); //((Button)Controls.Find(INDEX_CONTROL.BUTTON_CALC.ToString(), true)[0]).Click += new EventHandler(PluginPrjTepFTable_ClickRez); //Обработчики событий // для отображения таблиц dgv = Controls.Find(INDEX_CONTROL.DGV_NALG.ToString(), true)[0] as DataGridView; dgv.SelectionChanged += new EventHandler(dgvnALG_onSelectionChanged); //// для определения признака удаления (ФУНКЦИЮ или точку) //dgv.RowEnter += new DataGridViewCellEventHandler(dgvnALG_OnRowEnter); //dgv.Leave += new EventHandler (dgvnALG_OnLeave); dgv = Controls.Find(INDEX_CONTROL.DGV_VALUES.ToString(), true)[0] as DataGridView; dgv.SelectionChanged += new EventHandler(dgvValues_onSelectionChanged); //// для определения признака удаления (функцию или ТОЧКУ) //dgv.RowEnter += new DataGridViewCellEventHandler(dgvValues_OnRowEnter); //dgv.Leave += new EventHandler(dgvValues_OnLeave); // для поля ввода при поиске функции ((TextBox)Controls.Find(INDEX_CONTROL.TEXTBOX_FIND.ToString(), true)[0]).TextChanged += new EventHandler(PluginPrjTepFTable_TextChanged); }
/// <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 { ; // нет ни одной выбранной строки } }
private void clear(INDEX_CONTROL indxCtrl) { (find(indxCtrl) as IControl).ClearItems(); }
/// <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; for (INDEX_CONTROL indx = INDEX_CONTROL.TEXTBOX_A1; indx < (INDEX_CONTROL.TEXTBOX_F + 1); indx++) { (Controls.Find(indx.ToString(), true)[0] as TextBox).TextChanged -= tbCalcValue_onTextChanged; } 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; } } else { ; } for (INDEX_CONTROL indx = INDEX_CONTROL.TEXTBOX_A1; indx < (INDEX_CONTROL.TEXTBOX_F + 1); indx++) { (Controls.Find(indx.ToString(), true)[0] as TextBox).TextChanged += new EventHandler(tbCalcValue_onTextChanged); } }
/// <summary> /// Обработчик события - изменения значения в "ведущем" календаре /// </summary> /// <param name="obj">Объект, инициировавший событие</param> /// <param name="ev">Аргумент события</param> private void leading_ValueChanged(object obj, EventArgs ev) { HDateTimePicker objLeading = obj as HDateTimePicker; ComboBox cbxYear = null , cbxMonth = null , cbxDay = null , cbxHour = null; int iDiffYear = -1 , cntDayInMonth = -1; INDEX_CONTROL indx = (ev as EventDatePartArgs).m_index; if ((indx == INDEX_CONTROL.MONTH) || (indx == INDEX_CONTROL.YEAR) ) { if (_mode == MODE.MONTH) { m_tsLeading -= (TimeSpan.FromDays(DateTime.DaysInMonth(objLeading._value[(int)INDEX_VALUE.PREVIOUS].Year, objLeading._value[(int)INDEX_VALUE.PREVIOUS].Month)) - TimeSpan.FromDays(1)); m_tsLeading += (TimeSpan.FromDays(DateTime.DaysInMonth(objLeading._value[(int)INDEX_VALUE.CURRENT].Year, objLeading._value[(int)INDEX_VALUE.CURRENT].Month))); m_tsLeading -= TimeSpan.FromDays(1); } else if (_mode == MODE.YEAR) { m_tsLeading = TimeSpan.FromDays(DateTime.IsLeapYear(objLeading._value[(int)INDEX_VALUE.CURRENT].Year) == true ? 366 : 365); } else { ; } //??? только для MONTH //m_tsLeading -= TimeSpan.FromDays(1); } else { ; } //??? учитывать значение в "ведущем" календаре iDiffYear = objLeading.Value.Year - _value[(int)INDEX_VALUE.CURRENT].Year; _value[(int)INDEX_VALUE.PREVIOUS] = _value[(int)INDEX_VALUE.CURRENT]; _value[(int)INDEX_VALUE.CURRENT] = objLeading.Value + m_tsLeading; //??? учитывать значение в "ведущем" календаре iDiffYear -= objLeading.Value.Year - _value[(int)INDEX_VALUE.CURRENT].Year; cbxYear = Controls.Find(INDEX_CONTROL.YEAR.ToString(), true)[0] as ComboBox; cbxMonth = Controls.Find(INDEX_CONTROL.MONTH.ToString(), true)[0] as ComboBox; cbxDay = Controls.Find(INDEX_CONTROL.DAY.ToString(), true)[0] as ComboBox; cbxHour = Controls.Find(INDEX_CONTROL.HOUR.ToString(), true)[0] as ComboBox; cbxYear.SelectedIndexChanged -= new EventHandler(m_arSelectIndexChangedHandlers[(int)INDEX_CONTROL.YEAR]); cbxMonth.SelectedIndexChanged -= new EventHandler(m_arSelectIndexChangedHandlers[(int)INDEX_CONTROL.MONTH]); cbxDay.SelectedIndexChanged -= new EventHandler(m_arSelectIndexChangedHandlers[(int)INDEX_CONTROL.DAY]); cbxHour.SelectedIndexChanged -= new EventHandler(m_arSelectIndexChangedHandlers[(int)INDEX_CONTROL.HOUR]); try { cbxYear.SelectedIndex += iDiffYear; cbxMonth.SelectedIndex = _value[(int)INDEX_VALUE.CURRENT].Month - 1; cntDayInMonth = DateTime.DaysInMonth(_value[(int)INDEX_VALUE.CURRENT].Year, _value[(int)INDEX_VALUE.CURRENT].Month); //if ((ev as EventDatePartArgs).m_index == INDEX_CONTROL.MONTH) cbxDayMapping(cntDayInMonth, false); //else // cbxDay.SelectedIndex = _value[(int)INDEX_VALUE.CURRENT].Day - 1; cbxHour.SelectedIndex = _value[(int)INDEX_VALUE.CURRENT].Hour; // == 0 ? _value[(int)INDEX_VALUE.CURRENT].Hour : _value[(int)INDEX_VALUE.CURRENT].Hour - 1; } catch (Exception e) { Logging.Logg().Exception(e, @"HDateTimePicker::leading_ValueChanged (INDEX_CONTROL=" + (ev as EventDatePartArgs).m_index + @") - ...", Logging.INDEX_MESSAGE.NOT_SET); } cbxYear.SelectedIndexChanged += new EventHandler(m_arSelectIndexChangedHandlers[(int)INDEX_CONTROL.YEAR]); cbxMonth.SelectedIndexChanged += new EventHandler(m_arSelectIndexChangedHandlers[(int)INDEX_CONTROL.MONTH]); cbxDay.SelectedIndexChanged += new EventHandler(m_arSelectIndexChangedHandlers[(int)INDEX_CONTROL.DAY]); cbxHour.SelectedIndexChanged += new EventHandler(m_arSelectIndexChangedHandlers[(int)INDEX_CONTROL.HOUR]); ValueChanged(this, EventArgs.Empty); }
/// <summary> /// Очистить значения для элемента(ов) управления /// </summary> /// <param name="indxIdToClear">Индекс идентификатора в списке</param> private void clear(INDEX_CONTROL indxCtrlToClear) { Control ctrl = findControl(indxCtrlToClear.ToString()); (ctrl as IControl)?.ClearItems(); }