diff --git a/SpineViewer/Controls/SpineListView.Designer.cs b/SpineViewer/Controls/SpineListView.Designer.cs index 18e460e..1eb67b9 100644 --- a/SpineViewer/Controls/SpineListView.Designer.cs +++ b/SpineViewer/Controls/SpineListView.Designer.cs @@ -59,6 +59,7 @@ // listView // listView.AllowDrop = true; + listView.AutoArrange = false; listView.Columns.AddRange(new ColumnHeader[] { columnHeader_Name }); listView.ContextMenuStrip = contextMenuStrip; listView.Dock = DockStyle.Fill; @@ -89,7 +90,7 @@ contextMenuStrip.ImageScalingSize = new Size(24, 24); contextMenuStrip.Items.AddRange(new ToolStripItem[] { toolStripMenuItem_Add, toolStripMenuItem_Insert, toolStripMenuItem_Remove, toolStripSeparator1, toolStripMenuItem_BatchAdd, toolStripMenuItem_RemoveAll, toolStripSeparator2, toolStripMenuItem_MoveUp, toolStripMenuItem_MoveDown, toolStripMenuItem_MoveTop, toolStripMenuItem_MoveBottom, toolStripSeparator3, toolStripMenuItem_SelectAll, toolStripMenuItem_CopyPreview, toolStripSeparator4, toolStripMenuItem_ChangeView }); contextMenuStrip.Name = "contextMenuStrip"; - contextMenuStrip.Size = new Size(329, 388); + contextMenuStrip.Size = new Size(329, 421); contextMenuStrip.Closed += contextMenuStrip_Closed; contextMenuStrip.Opening += contextMenuStrip_Opening; // @@ -110,6 +111,7 @@ // toolStripMenuItem_Remove // toolStripMenuItem_Remove.Name = "toolStripMenuItem_Remove"; + toolStripMenuItem_Remove.ShortcutKeys = Keys.Delete; toolStripMenuItem_Remove.Size = new Size(328, 30); toolStripMenuItem_Remove.Text = "移除"; toolStripMenuItem_Remove.Click += toolStripMenuItem_Remove_Click; diff --git a/SpineViewer/Controls/SpineListView.cs b/SpineViewer/Controls/SpineListView.cs index a3ba932..b05ac23 100644 --- a/SpineViewer/Controls/SpineListView.cs +++ b/SpineViewer/Controls/SpineListView.cs @@ -106,6 +106,9 @@ namespace SpineViewer.Controls spines[i].IsSelected = listView.SelectedIndices.Contains(i); } } + + if (listView.SelectedItems.Count > 0) + listView.SelectedItems[0].EnsureVisible(); } private void listView_ItemDrag(object sender, ItemDragEventArgs e) @@ -303,8 +306,10 @@ namespace SpineViewer.Controls { lock (Spines) { (spines[index - 1], spines[index]) = (spines[index], spines[index - 1]); } var item = listView.Items[index]; + listView.BeginUpdate(); listView.Items.RemoveAt(index); listView.Items.Insert(index - 1, item); + listView.EndUpdate(); } } @@ -318,8 +323,10 @@ namespace SpineViewer.Controls { lock (Spines) { (spines[index], spines[index + 1]) = (spines[index + 1], spines[index]); } var item = listView.Items[index]; + listView.BeginUpdate(); listView.Items.RemoveAt(index); listView.Items.Insert(index + 1, item); + listView.EndUpdate(); } }