Пример #1
0
            /// <summary>
            /// Получение ИД контрола
            /// </summary>
            /// <param name="ctrl">контрол</param>
            /// <returns>индекс</returns>
            protected INDEX_ID getIndexIdOfControl(Control ctrl)
            {
                INDEX_CONTROL_BASE id      = INDEX_CONTROL_BASE.UNKNOWN; //Индекс (по сути - идентификатор) элемента управления, инициировавшего событие
                INDEX_ID           indxRes = INDEX_ID.UNKNOWN;

                try
                {
                    //Определить идентификатор
                    id = getIndexControl(ctrl);
                    // , соответствующий изменившему состояние элементу 'CheckedListBox'
                    switch (id)
                    {
                    case INDEX_CONTROL_BASE.CLBX_COMP_VISIBLED:
                        indxRes = id == INDEX_CONTROL_BASE.CLBX_COMP_VISIBLED ? INDEX_ID.DENY_COMP_VISIBLED : INDEX_ID.UNKNOWN;
                        break;

                    default:
                        break;
                    }
                }
                catch (Exception e)
                {
                    Logging.Logg().Exception(e, @"PanelManagementTaskTepValues::onItemCheck () - ...", Logging.INDEX_MESSAGE.NOT_SET);
                }

                return(indxRes);
            }
Пример #2
0
            /// <summary>
            /// Найти элемент управления на панели идентификатору
            /// </summary>
            /// <param name="indxCtrl">Идентификатор элемента управления</param>
            /// <returns>элемент панели</returns>
            protected Control find(INDEX_CONTROL_BASE indxCtrl)
            {
                Control ctrlRes = null;

                ctrlRes = Controls.Find(indxCtrl.ToString(), true)[0];

                return(ctrlRes);
            }
Пример #3
0
            //private struct COMBOBOX_ITEM
            //{
            //    public string m_Text;

            //    public object m_Id;
            //}

            private void fillComboBoxValues(IEnumerable <DataRow> rowValues
                                            , INDEX_CONTROL_BASE indxCtrl
                                            , int idSelected
                                            , string nameFieldTextValue
                                            , EventHandler handler)
            {
                int indx       = -1
                , indxSelected = -1;
                ComboBox ctrl  = null;
                //COMBOBOX_ITEM cbxItem;
                DataTable tableValues;

                ctrl = Controls.Find(indxCtrl.ToString(), true)[0] as ComboBox;
                //// вариант №1
                //foreach (DataRow r in tableValues.Rows) {
                //    cbxItem = new COMBOBOX_ITEM() { m_Text = (string)r[nameFieldTextValue], m_Id = Convert.ChangeType(r[@"ID"], typeof(int)) };
                //    indx = ctrl.Items.Add(cbxItem);

                //    if ((int)cbxItem.m_Id == idSelected)
                //        if (indxSelected < 0)
                //            indxSelected = indx;
                //        else
                //            throw new Exception(@"PanelManagementTaskCalculaye::fillComboBoxValues () - неоднозначный выбор элемента по указанному идентификатору ...");
                //    else
                //        ;
                //}

                //ctrl.ValueMember = @"m_Id"; //"ID";
                //ctrl.DisplayMember = @"m_Text"; //nameFieldTextValue;

                // вариант №2
                if (rowValues.Count() > 0)
                {
                    ctrl.ValueMember   = @"ID";
                    ctrl.DisplayMember = nameFieldTextValue;
                    tableValues        = rowValues.ElementAt(0).Table.Clone();
                    rowValues.ToList().ForEach(r => { tableValues.Rows.Add(r.ItemArray); });
                    ctrl.DataSource = tableValues;

                    ctrl.SelectedIndex = -1;
                    //??? до или после
                    //ctrl.SelectedIndexChanged += new EventHandler(handler);
                    activateComboBoxSelectedIndex_onChanged(indxCtrl, handler, true);

                    //if (!(idSelected < 0))
                    ctrl.SelectedValue = idSelected;
                    //else
                    //    throw new Exception(@"PanelManagementTaskCalculaye::fillComboBoxValues () - не найдена строка для выбора по указанному идентификатру ...");
                }
                else
                {
                    Logging.Logg().Error(string.Format(@"PanelManagementTaskCalculate::fillComboBoxValues () - таблица для DataSource пуста..."), Logging.INDEX_MESSAGE.NOT_SET);
                }
            }
Пример #4
0
            /// <summary>
            /// Возвратить идентификатор элемента управления по идентификатору
            ///  , используемого для его заполнения
            /// </summary>
            /// <param name="indxId"></param>
            /// <returns>индекс элемента панели</returns>
            protected INDEX_CONTROL_BASE getIndexControlOfIndexID(INDEX_ID indxId)
            {
                INDEX_CONTROL_BASE indxRes = INDEX_CONTROL_BASE.UNKNOWN;

                switch (indxId)
                {
                case INDEX_ID.DENY_COMP_VISIBLED:
                    indxRes = INDEX_CONTROL_BASE.CLBX_COMP_VISIBLED;
                    break;

                default:
                    break;
                }

                return(indxRes);
            }
Пример #5
0
            /// <summary>
            /// Получение индекса контрола
            /// </summary>
            /// <param name="ctrl">контрол</param>
            /// <returns>имя индекса контрола на панели</returns>
            protected INDEX_CONTROL_BASE getIndexControl(Control ctrl)
            {
                INDEX_CONTROL_BASE indxRes = INDEX_CONTROL_BASE.UNKNOWN;

                string strId = (ctrl as Control).Name;

                if (strId.Equals(INDEX_CONTROL_BASE.CLBX_COMP_VISIBLED.ToString()) == true)
                {
                    indxRes = INDEX_CONTROL_BASE.CLBX_COMP_VISIBLED;
                }
                else
                {
                    throw new Exception(@"PanelTaskReaktivka::getIndexControl () - не найден объект 'CheckedListBox'...");
                }

                return(indxRes);
            }
Пример #6
0
            private object getComboBoxSelectedValue(INDEX_CONTROL_BASE indx)
            {
                object objRes = -1;

                ComboBox cbx = (Controls.Find(indx.ToString(), true)[0] as ComboBox);

                if ((!(cbx == null)) &&
                    (!(cbx.SelectedIndex < 0)))
                {
                    objRes =
                        //Convert.ChangeType(((COMBOBOX_ITEM)cbx.SelectedItem).m_Id, typeof(int))
                        Convert.ChangeType(cbx.SelectedValue, typeof(int))
                    ;
                }
                else
                {
                    ;
                }

                return(objRes);
            }
Пример #7
0
            /// <summary>
            ///
            /// </summary>
            /// <param name="bActive"></param>
            /// <param name="idToActivate"></param>
            protected virtual void activateCheckedHandler(bool bActive, INDEX_ID idToActivate)
            {
                INDEX_CONTROL_BASE indxCtrl = INDEX_CONTROL_BASE.UNKNOWN;
                CheckedListBox     clbx     = null;

                indxCtrl = getIndexControlOfIndexID(idToActivate);

                if (!(indxCtrl == INDEX_CONTROL_BASE.UNKNOWN))
                {
                    clbx = (Controls.Find(indxCtrl.ToString(), true)[0] as CheckedListBox);

                    if (bActive == true)
                    {
                        clbx.ItemCheck += new ItemCheckEventHandler(onItemCheck);
                    }
                    else
                    {
                        clbx.ItemCheck -= onItemCheck;
                    }
                }
            }
Пример #8
0
            private void activateComboBoxSelectedIndex_onChanged(INDEX_CONTROL_BASE indxCtrl, EventHandler handler, bool bActivate = false)
            {
                ComboBox cbx = findControl(indxCtrl.ToString()) as ComboBox;

                // вариант №1
                // всегда отписываться
                cbx.SelectedIndexChanged -= handler;

                // при необходимости подписаться
                if (bActivate == true)
                {
                    cbx.SelectedIndexChanged += handler;
                }
                else
                {
                    ;
                }

                //// вариант №2
                //activateControl_onHandler(Controls.Find(indxCtrl.ToString(), true)[0] as ComboBox, "SelectedIndexChanged", handler, bActivate);

                ////??? вариант №3 универсальный
                ////activateControl_onHandler(cbx, cbx.SelectedIndexChanged, handler, bActivate);
            }