4
参见:ListBox select all itemsC#选择列表框中的所有项目 - 暂停事件处理
我有一个列表框,我需要选择所有项目。唯一的问题是,我有ListBox.SelectIndexChanged事件的事件处理程序,它会做一些CPU密集型的东西。在循环中选择项目会导致程序在循环的每次迭代中触发SelectIndexChanged事件。
我已经包含在暂停/ ResumeLayout环路()像这样:
SuspendLayout();
for (int i = 0; i < listBox.Items.Count; i++)
listBox.SetSelected(i, true);
ResumeLayout();
,但它仍然触发事件,仍然去需要较长的时间来更新选项。
我可能解决这个问题,我用一个简单的布尔标志,当我开始更新时,我会切换,但如果有一个更好的方式来解决这个问题,那就太好了。
谢谢。