public MainForm() //test { InitializeComponent(); AppFilterList.DoubleBuffering(true); DrawableListView.DoubleBuffering(true); }
public void PopulateDrawableListView() { foreach (ListViewItem item in DrawableListView.Items) { DrawableListView.Items.Remove(item); } comboBox1.Items.Clear(); DrawableListView.LargeImageList = DrawableXML.images; var items = new List <ListViewItem>(); foreach (DrawableCategory category in DrawableXML.categories) { ListViewGroup group = new ListViewGroup(category.name); DrawableListView.Groups.Add(group); comboBox1.Items.Add(new ComboItem { ID = category.tag, Text = category.name }); foreach (DrawableItem item in category.DrawableItems) { string[] row = { item.drawable, item.GroupTag, item.tag }; ListViewItem listItem = new ListViewItem(row); listItem.Group = group; listItem.ImageKey = item.drawable; items.Add(listItem); } } DrawableListView.BeginUpdate(); DrawableListView.Items.AddRange(items.ToArray()); DrawableListView.EndUpdate(); DrawableListView.Refresh(); }
private void DrawableListView_MouseUp(object sender, MouseEventArgs e) { var newItem = DrawableListView.GetItemAt(e.X, e.Y); if (newItem != null && newItem.Group != heldDownItem.Group && Drag) { var oldGroup = DrawableXML.categories.Find(x => x.tag == heldDownItem.SubItems[1].Text); var newGroup = DrawableXML.categories.Find(x => x.tag == newItem.SubItems[1].Text); var oldItem = oldGroup.DrawableItems.Find(x => x.tag == heldDownItem.SubItems[2].Text); oldGroup.DrawableItems.Remove(oldItem); newGroup.DrawableItems.Add(oldItem); //MessageBox.Show(heldDownItem.Text); Drag = false; heldDownItem = null; DrawableXML.wasEdited = true; SortDrawble(); PopulateDrawableListView(); } /*ListViewItem NewItem; * if ((NewItem = DrawableListView.GetItemAt(e.X, e.Y)) != null && NewItem != heldDownItem && Drag) * { * ListViewGroup group = NewItem.Group; * /*var Newgroup = DrawableXML.categories.Find(x => x.tag == NewItem.SubItems[1].Text); * var Drawableitem = Newgroup.DrawableItems.Find(x => x.tag == NewItem.SubItems[2].Text); * var itemIndex = Newgroup.DrawableItems.IndexOf(Drawableitem); * * var oldIGroup = DrawableXML.categories.Find(x => x.tag == heldDownItem.SubItems[1].Text); * var oldDrawableItem = oldIGroup.DrawableItems.Find(x => x.tag == heldDownItem.SubItems[2].Text); * * * var oldItemIndex = oldIGroup.DrawableItems.IndexOf(oldDrawableItem); * * * * oldIGroup.DrawableItems.RemoveAt(oldItemIndex); * Newgroup.DrawableItems.Insert(itemIndex, oldDrawableItem); * * /*var groupIndex = heldDownItem.Group; * var index = groupIndex.Items.IndexOf(NewItem); * groupIndex.Items.Remove(heldDownItem); * groupIndex.Items.Insert(index, heldDownItem);*/ // DrawableListView.Refresh(); // Drag = false; // PopulateDrawableListView(); // heldDownItem = null; //} }
private void DrawableListView_MouseDown(object sender, MouseEventArgs e) { if (Control.MouseButtons == MouseButtons.Left) { heldDownItem = DrawableListView.GetItemAt(e.X, e.Y); Drag = true; } }
private void DrawableListView_MouseMove(object sender, MouseEventArgs e) { if (heldDownItem != null) { Cursor.Current = Cursors.Hand; ListViewItem HoverItem; if ((HoverItem = DrawableListView.GetItemAt(e.X, e.Y)) != null) { try { DrawableListView.SelectedItems.Clear(); DrawableListView.Items[heldDownItem.Index].Selected = true; DrawableListView.Items[HoverItem.Index].Selected = true; } catch (Exception ex) { } } } }