using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Volian.Controls.Library { public partial class ListBoxMulti : ListBox { public ListBoxMulti() { Visible = true; SelectionMode = SelectionMode.MultiSimple; SelectedIndexChanged += lb_SelectedIndexChanged; Disposed += ListBoxMulti_Disposed; } public int singleselectedindex { get; set; } private void lb_SelectedIndexChanged(object sender, EventArgs e) { ListBoxMulti tmp = (ListBoxMulti)sender; if (tmp.SelectedItems.Count == 1 && tmp.singleselectedindex == 0) { tmp.ClearSelected(); } else if (tmp.SelectedItems.Count == 1) tmp.singleselectedindex = tmp.SelectedIndex; else tmp.singleselectedindex = -1; } private void ListBoxMulti_Disposed(object sender, EventArgs e) { SelectedIndexChanged -= lb_SelectedIndexChanged; } } }