private void tryApplyTones(IEnumerable <Tone> tones) { if (tones != null && tones.Count() != 0) { try { ignorePlayingFlag++; try { ignoreMetroComboBoxTimbres_SelectedIndexChanged = true; for (int i = 0; i < tones.Count(); i++) { if (i >= metroComboBoxTimbres.Items.Count) { break; } TimbreItem ti = (TimbreItem)metroComboBoxTimbres.Items[i]; this.Timbre = ti.Timbre; this.TimbreNo = ti.Number; ApplyTone(ti.Timbre, tones.ElementAt(i)); metroComboBoxTimbres.Items[i] = new TimbreItem(ti.Timbre, i); } metroComboBoxTimbres.SelectedIndex = 0; } finally { ignoreMetroComboBoxTimbres_SelectedIndexChanged = false; } metroComboBoxTimbres_SelectedIndexChanged(null, null); metroComboBoxTimbres.Invalidate(); } finally { ignorePlayingFlag--; } } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void metroComboBoxTimbres_SelectedIndexChanged(object sender, EventArgs e) { if (ignoreMetroComboBoxTimbres_SelectedIndexChanged) { return; } TimbreItem ti = (TimbreItem)metroComboBoxTimbres.Items[metroComboBoxTimbres.SelectedIndex]; this.Timbre = ti.Timbre; this.TimbreNo = ti.Number; try { ignorePlayingFlag++; ApplyTimbre(ti.Timbre); } finally { ignorePlayingFlag--; } Control_ValueChanged(this, null); }