/// <summary> /// Создать массив п. меню, управляющего содержанием элемента управления /// </summary> /// <returns>Массив п.п. контекстного меню</returns> private MenuItem[] createContentMenuItems() { PanelTecViewBase.LabelViewProperties.INDEX_PROPERTIES_VIEW indx = PanelTecViewBase.LabelViewProperties.INDEX_PROPERTIES_VIEW.UNKNOWN; MenuItem[] arMenuItems = new MenuItem[(int)PanelTecViewBase.LabelViewProperties.INDEX_PROPERTIES_VIEW.COUNT_PROPERTIES_VIEW]; for (indx = 0; indx < PanelTecViewBase.LabelViewProperties.INDEX_PROPERTIES_VIEW.COUNT_PROPERTIES_VIEW; indx++) { arMenuItems [(int)indx] = new MenuItem(PanelTecViewBase.LabelViewProperties.GetText(indx), this.OnMenuItem_Content); arMenuItems [(int)indx].Tag = indx; if (indx == PanelTecViewBase.LabelViewProperties.INDEX_PROPERTIES_VIEW.ORIENTATION) { arMenuItems [(int)indx] = new MenuItem(PanelTecViewBase.LabelViewProperties.GetText(indx), new MenuItem [] { new MenuItem(@"Вертикально", this.OnMenuItem_Content) , new MenuItem(@"Горизонтально", this.OnMenuItem_Content) }); arMenuItems [(int)indx].MenuItems[0].Tag = Orientation.Vertical; arMenuItems [(int)indx].MenuItems [1].Tag = Orientation.Horizontal; } else { ; } } return(arMenuItems); }
/// <summary> /// Изменить состояние меню /// </summary> private void ContentMenuStateChange() { Menu.MenuItemCollection arMenuItems; arMenuItems = ContextMenu.MenuItems [ContextMenu.MenuItems.Count - (COUNT_FIXED_CONTEXT_MENUITEM - INDEX_START_CONTEXT_MENUITEM)].MenuItems; for (PanelTecViewBase.LabelViewProperties.INDEX_PROPERTIES_VIEW i = 0; i < PanelTecViewBase.LabelViewProperties.INDEX_PROPERTIES_VIEW.COUNT_PROPERTIES_VIEW; i++) { arMenuItems[(int)i].Enabled = m_propView.GetValue(i) == PanelTecViewBase.LabelViewProperties.VALUE.DISABLED ? false : true; if (i == PanelTecViewBase.LabelViewProperties.INDEX_PROPERTIES_VIEW.ORIENTATION) { if (arMenuItems[(int)i].Enabled == true) { for (int j = 0; j < 2; j++) { arMenuItems[(int)i].MenuItems[j].RadioCheck = true; arMenuItems[(int)i].MenuItems[j].Checked = j == (int)m_propView.GetValue(i); } } else { ; } } else { arMenuItems[(int)i].Checked = m_propView.GetValue(i) == PanelTecViewBase.LabelViewProperties.VALUE.ON; } } }
/// <summary> /// Обработчик события - выбор п. меню /// </summary> /// <param name="obj">Объект, инициировавший событие</param> /// <param name="ev">Аргумент события</param> private void OnMenuItem_Content(object obj, EventArgs ev) { MenuItem mi; PanelTecViewBase.LabelViewProperties.INDEX_PROPERTIES_VIEW indx = PanelTecViewBase.LabelViewProperties.INDEX_PROPERTIES_VIEW.UNKNOWN; mi = (MenuItem)obj; if (Equals(mi.Tag, null) == false) { if (typeof(PanelTecViewBase.LabelViewProperties.INDEX_PROPERTIES_VIEW).IsAssignableFrom(mi.Tag.GetType()) == true) { indx = (PanelTecViewBase.LabelViewProperties.INDEX_PROPERTIES_VIEW)mi.Tag; } else if (typeof(Orientation).IsAssignableFrom(mi.Tag.GetType()) == true) { indx = PanelTecViewBase.LabelViewProperties.INDEX_PROPERTIES_VIEW.ORIENTATION; } else { ; } } else { indx = (PanelTecViewBase.LabelViewProperties.INDEX_PROPERTIES_VIEW)((MenuItem)obj).Index; } if (!(indx == PanelTecViewBase.LabelViewProperties.INDEX_PROPERTIES_VIEW.ORIENTATION)) { m_propView.SetProperty(indx, (PanelTecViewBase.LabelViewProperties.VALUE)(((MenuItem)obj).Checked == true ? 0 : 1)); } else { // ориентация размещения таблиц/гистограмм m_propView.SetProperty(indx, (PanelTecViewBase.LabelViewProperties.VALUE)mi.Index); } EventRestruct(m_propView); ContentMenuStateChange(); ((PanelCustomTecView)Parent.Parent).EventContentChanged(); }
/// <summary> /// Установить новое значение для свойства /// </summary> /// <param name="indx">Индекс свойства</param> /// <param name="newVal">Новое значение свойства</param> public void SetProperty(PanelTecViewBase.LabelViewProperties.INDEX_PROPERTIES_VIEW indx, PanelTecViewBase.LabelViewProperties.VALUE newVal) { SetValue(indx, newVal); int cnt = 0; PanelTecViewBase.LabelViewProperties.INDEX_PROPERTIES_VIEW i = PanelTecViewBase.LabelViewProperties.INDEX_PROPERTIES_VIEW.UNKNOWN; // сколько таблиц/гистограмм отображается cnt = GetCountOn(0, PanelTecViewBase.LabelViewProperties.INDEX_PROPERTIES_VIEW.GRAPH_HOURS); if (cnt > 1) { if (cnt > 2) { //if (cnt > 3) { if (indx < PanelTecViewBase.LabelViewProperties.INDEX_PROPERTIES_VIEW.GRAPH_MINS) { //3-й установленный признак - таблица: снять с отображения графики SetGraphOff(); } else { //3-й установленный признак - график: снять с отображения таблицы SetTableOff(); } cnt -= 2; //} else ; } else { ; } if (cnt > 1) { if (IsOrientationDisabled == true) { if (PreviousOrientation == PanelTecViewBase.LabelViewProperties.VALUE.DISABLED) { //Вертикально - по умолчанию SetValue(PanelTecViewBase.LabelViewProperties.INDEX_PROPERTIES_VIEW.ORIENTATION , PanelTecViewBase.LabelViewProperties.VALUE.OFF); } else { OrientationRecovery(); } } else { ; //Оставить "как есть" } } else { OrientationDisabled(); } } else { OrientationDisabled(); } }