/// <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);
            }
Beispiel #2
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);
                }
            }
Beispiel #3
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);
            }
            /// <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;
                    }
                }
            }
Beispiel #5
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);
            }