private void cbxType_SelectedIndexChanged(object sender, EventArgs e) { var bdd = (BusDeviceDescriptor)cbxType.SelectedItem; if (bdd == null || !typeof(MemoryBase).IsAssignableFrom(bdd.Type)) { lblRomSet.Visible = false; cbxRomSet.Visible = false; return; } MemoryBase memory = null; if (bdd.Type == m_device.GetType()) { memory = (MemoryBase)m_device; } if (memory == null) { memory = (MemoryBase)Activator.CreateInstance(bdd.Type); } cbxRomSet.SelectedIndex = -1; for (var i = 0; i < cbxRomSet.Items.Count; i++) { if (string.Compare(memory.RomSetName, (String)cbxRomSet.Items[i], true) == 0) { cbxRomSet.SelectedIndex = i; break; } } }