Exemple #1
0
        private void cbGrTableType_SelectedIndexChanged(object sender, EventArgs e)
        {
            // изменение типа таблицы данных группы элементов
            if (elemGroup != null)
            {
                TableType tableType  = (TableType)cbGrTableType.SelectedIndex;
                int       maxElemCnt = elemGroup.GetMaxElemCnt(tableType);

                bool cancel = elemGroup.Elems.Count > maxElemCnt &&
                              MessageBox.Show(string.Format(KpPhrases.ElemRemoveWarning, maxElemCnt),
                                              CommonPhrases.QuestionCaption, MessageBoxButtons.YesNoCancel,
                                              MessageBoxIcon.Question) != DialogResult.Yes;

                if (cancel)
                {
                    cbGrTableType.SelectedIndexChanged -= cbGrTableType_SelectedIndexChanged;
                    cbGrTableType.SelectedIndex         = (int)elemGroup.TableType;
                    cbGrTableType.SelectedIndexChanged += cbGrTableType_SelectedIndexChanged;
                }
                else
                {
                    // ограничение макс. количества элементов в группе
                    if (numGrElemCnt.Value > maxElemCnt)
                    {
                        numGrElemCnt.Value = maxElemCnt;
                    }
                    numGrElemCnt.Maximum = maxElemCnt;

                    // установка типа таблицы данных
                    elemGroup.TableType = tableType;
                    elemGroup.UpdateFuncCode();
                    ShowFuncCode(elemGroup);

                    // установка типа элементов группы по умолчанию
                    ElemType elemType = elemGroup.DefElemType;
                    foreach (Elem elem in elemGroup.Elems)
                    {
                        elem.ElemType = elemType;
                    }

                    OnObjectChanged(TreeUpdateTypes.CurrentNode | TreeUpdateTypes.ChildNodes);
                }
            }
        }