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); } } }