0

我有这段代码可以将项目添加到上下文菜单的子菜单中:

 CTX_VALUE.Enabled = True
 CTX_VALUE.Visible = True
 CTX_VALUE.Text = "List Values"

 For k As Integer = 0 To CELL.VALUE_LIST.Count - 1
     CTX_VALUE.DropDownItems.Add(CELL.VALUE_LIST(k))
 Next k

CTX_VALUE一个在哪里ToolStripMenuItem

并且CELL.VALUE_LISTArrayList(是的,旧代码!)ToolStripMenuItems

当添加大约 150 个项目时,它变得非常慢,大约 2.5 秒。

添加之前的可见性并不重要,我尝试在之后移动它。
顺便说一句,请注意添加项目时上下文菜单不在屏幕上!

我还尝试在添加之前暂停布局CTX_VALUE没运气。

4

2 回答 2

1

您应该使用 CTX_VALUE.DropDownItems.AddRange()方法添加这些

于 2014-02-06T12:13:43.227 回答
0

添加项目循环之前,我同时使用了

ts_filter.DropDown.SuspendDrawing(见下面的补充说明)

ts_filter.DropDown.SuspendLayout

在循环之后我使用了相应的恢复方法。这对我的程序从不可行变为即时产生了巨大的影响。

附录:- resumedrawing(单独)阻止我的自定义文本框(继承自toolstriptextboxfrom)显示。我发现suspendlayout和resumelayout单独使用还可以,它保持了速度。

于 2021-12-17T11:43:30.207 回答