private void LayersControl_SelectedValueChanged(object sender, EventArgs e) { if (Слои.SelectedIndex != ActiveLayer) { if (Слои.SelectedIndex != -1 && ActiveLayer < Слои.Items.Count) { Слои.SetItemCheckState(ActiveLayer, CheckState.Unchecked); ActiveLayer = Слои.SelectedIndex; Слои.SetItemCheckState(Слои.SelectedIndex, CheckState.Checked); ProgrammDrawingEngine.SetActiveLayerNom(ActiveLayer); } } }
// данная функция будет обрабатывать изменения значения элементов LayersControl private void LayersControl_SelectedValueChanged(object sender, EventArgs e) { // если отметили новый слой, необходимо снять галочку выделения со старого if (Слои.SelectedIndex != ActiveLayer) { // если выделенный индекс является корректным ( больше либо равен нулю и входит в диапазон элементов) if (Слои.SelectedIndex != -1 && ActiveLayer < Слои.Items.Count) { // снимаем галочку с предыдущего активного слоя Слои.SetItemCheckState(ActiveLayer, CheckState.Unchecked); // сохраняем новый индекс выделенного элемента ActiveLayer = Слои.SelectedIndex; // помечаем галочкой новый активный слой Слои.SetItemCheckState(Слои.SelectedIndex, CheckState.Checked); // посылаем сигнал движку программы, об изменении активного слоя ProgrammDrawingEngine.SetActiveLayerNom(ActiveLayer); } } }