private void ButtonRemoveAsset_Click(object sender, EventArgs e) { if (listViewAssets.SelectedItems.Count == 0) { return; } programIsChangingStuff = true; AssetType a = AssetType.Null; if (comboBoxAssetTypes.SelectedIndex > 0) { a = (AssetType)comboBoxAssetTypes.SelectedItem; } var prevIndex = listViewAssets.SelectedIndices[0]; archive.RemoveAsset(CurrentlySelectedAssetIDs()); comboBoxLayers.Items[comboBoxLayers.SelectedIndex] = archive.LayerToString(comboBoxLayers.SelectedIndex); archive.UnsavedChanges = true; foreach (ListViewItem v in listViewAssets.SelectedItems) { listViewAssets.Items.Remove(v); } programIsChangingStuff = false; if (a != curType) { comboBoxAssetTypes.SelectedItem = a; } else { for (int i = 0; i < listViewAssets.Items.Count; i++) { listViewAssets.Items[i].Selected = false; } if (listViewAssets.Items.Count > 0) { try { listViewAssets.Items[prevIndex].Selected = true; } catch { try { listViewAssets.Items[prevIndex - 1].Selected = true; } catch { } } } } if (listViewAssets.Items.Count == 0) { PopulateAssetListAndComboBox(); } }