优化多项操作卡顿问题
This commit is contained in:
7
SpineViewer/Controls/SpineListView.Designer.cs
generated
7
SpineViewer/Controls/SpineListView.Designer.cs
generated
@@ -54,6 +54,7 @@
|
|||||||
toolStripMenuItem_DetailsView = new ToolStripMenuItem();
|
toolStripMenuItem_DetailsView = new ToolStripMenuItem();
|
||||||
imageList_LargeIcon = new ImageList(components);
|
imageList_LargeIcon = new ImageList(components);
|
||||||
imageList_SmallIcon = new ImageList(components);
|
imageList_SmallIcon = new ImageList(components);
|
||||||
|
timer_SelectedIndexChangedDebounce = new System.Windows.Forms.Timer(components);
|
||||||
contextMenuStrip.SuspendLayout();
|
contextMenuStrip.SuspendLayout();
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
//
|
//
|
||||||
@@ -250,6 +251,11 @@
|
|||||||
imageList_SmallIcon.ImageSize = new Size(48, 48);
|
imageList_SmallIcon.ImageSize = new Size(48, 48);
|
||||||
imageList_SmallIcon.TransparentColor = Color.Transparent;
|
imageList_SmallIcon.TransparentColor = Color.Transparent;
|
||||||
//
|
//
|
||||||
|
// timer_SelectedIndexChangedDebounce
|
||||||
|
//
|
||||||
|
timer_SelectedIndexChangedDebounce.Interval = 30;
|
||||||
|
timer_SelectedIndexChangedDebounce.Tick += timer_SelectedIndexChangedDebounce_Tick;
|
||||||
|
//
|
||||||
// SpineListView
|
// SpineListView
|
||||||
//
|
//
|
||||||
AutoScaleDimensions = new SizeF(11F, 24F);
|
AutoScaleDimensions = new SizeF(11F, 24F);
|
||||||
@@ -287,5 +293,6 @@
|
|||||||
private ToolStripMenuItem toolStripMenuItem_SelectAll;
|
private ToolStripMenuItem toolStripMenuItem_SelectAll;
|
||||||
private ToolStripSeparator toolStripSeparator4;
|
private ToolStripSeparator toolStripSeparator4;
|
||||||
private ToolStripMenuItem toolStripMenuItem_AddFromClipboard;
|
private ToolStripMenuItem toolStripMenuItem_AddFromClipboard;
|
||||||
|
private System.Windows.Forms.Timer timer_SelectedIndexChangedDebounce;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -228,6 +228,18 @@ namespace SpineViewer.Controls
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void listView_SelectedIndexChanged(object sender, EventArgs e)
|
private void listView_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
timer_SelectedIndexChangedDebounce.Stop();
|
||||||
|
timer_SelectedIndexChangedDebounce.Start();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void timer_SelectedIndexChangedDebounce_Tick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
timer_SelectedIndexChangedDebounce.Stop();
|
||||||
|
_listView_SelectedIndexChanged(listView, EventArgs.Empty);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void _listView_SelectedIndexChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
lock (Spines)
|
lock (Spines)
|
||||||
{
|
{
|
||||||
@@ -395,17 +407,19 @@ namespace SpineViewer.Controls
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var i in listView.SelectedIndices.Cast<int>().OrderByDescending(x => x))
|
lock (Spines)
|
||||||
{
|
{
|
||||||
listView.Items.RemoveAt(i);
|
listView.BeginUpdate();
|
||||||
lock (Spines)
|
foreach (var i in listView.SelectedIndices.Cast<int>().OrderByDescending(x => x))
|
||||||
{
|
{
|
||||||
|
listView.Items.RemoveAt(i);
|
||||||
var spine = spines[i];
|
var spine = spines[i];
|
||||||
spines.RemoveAt(i);
|
spines.RemoveAt(i);
|
||||||
listView.SmallImageList.Images.RemoveByKey(spine.ID);
|
listView.SmallImageList.Images.RemoveByKey(spine.ID);
|
||||||
listView.LargeImageList.Images.RemoveByKey(spine.ID);
|
listView.LargeImageList.Images.RemoveByKey(spine.ID);
|
||||||
spine.Dispose();
|
spine.Dispose();
|
||||||
}
|
}
|
||||||
|
listView.EndUpdate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -126,4 +126,7 @@
|
|||||||
<metadata name="imageList_SmallIcon.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="imageList_SmallIcon.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>252, 19</value>
|
<value>252, 19</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
<metadata name="timer_SelectedIndexChangedDebounce.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>771, 24</value>
|
||||||
|
</metadata>
|
||||||
</root>
|
</root>
|
||||||
Reference in New Issue
Block a user