void UpdateWsComboValue() { try { m_fUpdatingWsCombo = true; int index = CurrentListIndex; if (index < 0 || index >= m_choices.Count) { wsCombo.SelectedIndex = -1; wsCombo.Enabled = false; return; } InterlinLineSpec spec = m_choices[index]; ComboBox.ObjectCollection comboObjects = WsComboItems(spec.ComboContent); object[] choices = new object[comboObjects.Count]; comboObjects.CopyTo(choices, 0); wsCombo.Items.Clear(); wsCombo.Items.AddRange(choices); int ws = spec.WritingSystem; wsCombo.Enabled = true; // JohnT: note that, because 'Default analysis' and 'Default Vernacular' // come first, the corresponding actual writing systems will never be // chosen by this algorithm. foreach (WsComboItem item in wsCombo.Items) { if (getWsFromId(item.Id) == ws) { wsCombo.SelectedItem = item; break; } } } finally { m_fUpdatingWsCombo = false; } }