diff --git a/SpineViewer/Controls/SpineListView.Designer.cs b/SpineViewer/Controls/SpineListView.Designer.cs index 4ddc1a4..b4dbc48 100644 --- a/SpineViewer/Controls/SpineListView.Designer.cs +++ b/SpineViewer/Controls/SpineListView.Designer.cs @@ -48,6 +48,7 @@ toolStripMenuItem_DetailsView = new ToolStripMenuItem(); imageList_LargeIcon = new ImageList(components); imageList_SmallIcon = new ImageList(components); + toolStripMenuItem_MoveTop = new ToolStripMenuItem(); contextMenuStrip.SuspendLayout(); SuspendLayout(); // @@ -82,15 +83,15 @@ // contextMenuStrip // contextMenuStrip.ImageScalingSize = new Size(24, 24); - contextMenuStrip.Items.AddRange(new ToolStripItem[] { toolStripMenuItem_Add, toolStripMenuItem_Insert, toolStripMenuItem_Remove, toolStripSeparator1, toolStripMenuItem_MoveUp, toolStripMenuItem_MoveDown, toolStripSeparator2, toolStripMenuItem_BatchAdd, toolStripMenuItem_RemoveAll, toolStripSeparator3, toolStripMenuItem_ChangeView }); + contextMenuStrip.Items.AddRange(new ToolStripItem[] { toolStripMenuItem_Add, toolStripMenuItem_Insert, toolStripMenuItem_Remove, toolStripSeparator1, toolStripMenuItem_MoveTop, toolStripMenuItem_MoveUp, toolStripMenuItem_MoveDown, toolStripSeparator2, toolStripMenuItem_BatchAdd, toolStripMenuItem_RemoveAll, toolStripSeparator3, toolStripMenuItem_ChangeView }); contextMenuStrip.Name = "contextMenuStrip"; - contextMenuStrip.Size = new Size(188, 262); + contextMenuStrip.Size = new Size(241, 325); contextMenuStrip.Opening += contextMenuStrip_Opening; // // toolStripMenuItem_Add // toolStripMenuItem_Add.Name = "toolStripMenuItem_Add"; - toolStripMenuItem_Add.Size = new Size(187, 30); + toolStripMenuItem_Add.Size = new Size(240, 30); toolStripMenuItem_Add.Text = "添加(&A)..."; toolStripMenuItem_Add.Click += toolStripMenuItem_Add_Click; // @@ -98,7 +99,7 @@ // toolStripMenuItem_Insert.Enabled = false; toolStripMenuItem_Insert.Name = "toolStripMenuItem_Insert"; - toolStripMenuItem_Insert.Size = new Size(187, 30); + toolStripMenuItem_Insert.Size = new Size(240, 30); toolStripMenuItem_Insert.Text = "插入(&I)..."; toolStripMenuItem_Insert.Click += toolStripMenuItem_Insert_Click; // @@ -106,38 +107,38 @@ // toolStripMenuItem_Remove.Enabled = false; toolStripMenuItem_Remove.Name = "toolStripMenuItem_Remove"; - toolStripMenuItem_Remove.Size = new Size(187, 30); + toolStripMenuItem_Remove.Size = new Size(240, 30); toolStripMenuItem_Remove.Text = "移除(&R)"; toolStripMenuItem_Remove.Click += toolStripMenuItem_Remove_Click; // // toolStripSeparator1 // toolStripSeparator1.Name = "toolStripSeparator1"; - toolStripSeparator1.Size = new Size(184, 6); + toolStripSeparator1.Size = new Size(237, 6); // // toolStripMenuItem_MoveUp // toolStripMenuItem_MoveUp.Name = "toolStripMenuItem_MoveUp"; - toolStripMenuItem_MoveUp.Size = new Size(187, 30); + toolStripMenuItem_MoveUp.Size = new Size(240, 30); toolStripMenuItem_MoveUp.Text = "上移(&U)"; toolStripMenuItem_MoveUp.Click += toolStripMenuItem_MoveUp_Click; // // toolStripMenuItem_MoveDown // toolStripMenuItem_MoveDown.Name = "toolStripMenuItem_MoveDown"; - toolStripMenuItem_MoveDown.Size = new Size(187, 30); + toolStripMenuItem_MoveDown.Size = new Size(240, 30); toolStripMenuItem_MoveDown.Text = "下移(&D)"; toolStripMenuItem_MoveDown.Click += toolStripMenuItem_MoveDown_Click; // // toolStripSeparator2 // toolStripSeparator2.Name = "toolStripSeparator2"; - toolStripSeparator2.Size = new Size(184, 6); + toolStripSeparator2.Size = new Size(237, 6); // // toolStripMenuItem_BatchAdd // toolStripMenuItem_BatchAdd.Name = "toolStripMenuItem_BatchAdd"; - toolStripMenuItem_BatchAdd.Size = new Size(187, 30); + toolStripMenuItem_BatchAdd.Size = new Size(240, 30); toolStripMenuItem_BatchAdd.Text = "批量添加(&B)..."; toolStripMenuItem_BatchAdd.Click += toolStripMenuItem_BatchAdd_Click; // @@ -145,20 +146,20 @@ // toolStripMenuItem_RemoveAll.Enabled = false; toolStripMenuItem_RemoveAll.Name = "toolStripMenuItem_RemoveAll"; - toolStripMenuItem_RemoveAll.Size = new Size(187, 30); + toolStripMenuItem_RemoveAll.Size = new Size(240, 30); toolStripMenuItem_RemoveAll.Text = "移除全部(&X)"; toolStripMenuItem_RemoveAll.Click += toolStripMenuItem_RemoveAll_Click; // // toolStripSeparator3 // toolStripSeparator3.Name = "toolStripSeparator3"; - toolStripSeparator3.Size = new Size(184, 6); + toolStripSeparator3.Size = new Size(237, 6); // // toolStripMenuItem_ChangeView // toolStripMenuItem_ChangeView.DropDownItems.AddRange(new ToolStripItem[] { toolStripMenuItem_LargeIconView, toolStripMenuItem_SmallIconView, toolStripMenuItem_DetailsView }); toolStripMenuItem_ChangeView.Name = "toolStripMenuItem_ChangeView"; - toolStripMenuItem_ChangeView.Size = new Size(187, 30); + toolStripMenuItem_ChangeView.Size = new Size(240, 30); toolStripMenuItem_ChangeView.Text = "切换视图"; // // toolStripMenuItem_LargeIconView @@ -194,6 +195,13 @@ imageList_SmallIcon.ImageSize = new Size(48, 48); imageList_SmallIcon.TransparentColor = Color.Transparent; // + // toolStripMenuItem_MoveTop + // + toolStripMenuItem_MoveTop.Name = "toolStripMenuItem_MoveTop"; + toolStripMenuItem_MoveTop.Size = new Size(240, 30); + toolStripMenuItem_MoveTop.Text = "置顶(&T)"; + toolStripMenuItem_MoveTop.Click += toolStripMenuItem_MoveTop_Click; + // // SpineListView // AutoScaleDimensions = new SizeF(11F, 24F); @@ -225,5 +233,6 @@ private ToolStripMenuItem toolStripMenuItem_LargeIconView; private ToolStripMenuItem toolStripMenuItem_SmallIconView; private ToolStripMenuItem toolStripMenuItem_DetailsView; + private ToolStripMenuItem toolStripMenuItem_MoveTop; } } diff --git a/SpineViewer/Controls/SpineListView.cs b/SpineViewer/Controls/SpineListView.cs index 7ad64f6..eb43210 100644 --- a/SpineViewer/Controls/SpineListView.cs +++ b/SpineViewer/Controls/SpineListView.cs @@ -183,12 +183,14 @@ namespace SpineViewer.Controls private void contextMenuStrip_Opening(object sender, CancelEventArgs e) { - var selectedCount = listView.SelectedIndices.Count; + var selectedIndices = listView.SelectedIndices; + var selectedCount = selectedIndices.Count; var itemsCount = listView.Items.Count; toolStripMenuItem_Insert.Enabled = selectedCount == 1; toolStripMenuItem_Remove.Enabled = selectedCount >= 1; - toolStripMenuItem_MoveUp.Enabled = selectedCount == 1 && listView.SelectedIndices[0] != 0; - toolStripMenuItem_MoveDown.Enabled = selectedCount == 1 && listView.SelectedIndices[0] != itemsCount - 1; + toolStripMenuItem_MoveTop.Enabled = selectedCount == 1 && selectedIndices[0] != 0; + toolStripMenuItem_MoveUp.Enabled = selectedCount == 1 && selectedIndices[0] != 0; + toolStripMenuItem_MoveDown.Enabled = selectedCount == 1 && selectedIndices[0] != itemsCount - 1; toolStripMenuItem_RemoveAll.Enabled = itemsCount > 0; // 视图选项 @@ -238,6 +240,21 @@ namespace SpineViewer.Controls } } + private void toolStripMenuItem_MoveTop_Click(object sender, EventArgs e) + { + if (listView.SelectedIndices.Count != 1) + return; + + var index = listView.SelectedIndices[0]; + if (index > 0) + { + lock (Spines) { (spines[0], spines[index]) = (spines[index], spines[0]); } + var item = listView.Items[index]; + listView.Items.RemoveAt(index); + listView.Items.Insert(0, item); + } + } + private void toolStripMenuItem_MoveUp_Click(object sender, EventArgs e) { if (listView.SelectedIndices.Count != 1) diff --git a/SpineViewer/Controls/SpineListView.resx b/SpineViewer/Controls/SpineListView.resx index a813d55..bb6cf1c 100644 --- a/SpineViewer/Controls/SpineListView.resx +++ b/SpineViewer/Controls/SpineListView.resx @@ -121,9 +121,9 @@ 17, 17 - 552, 29 + 511, 20 - 267, 34 + 252, 19 \ No newline at end of file