当前位置:首页 > WPF RichTextBox 集合被修改;枚举操作可能无法执行。

WPF RichTextBox 集合被修改;枚举操作可能无法执行。

点击次数:2671  更新日期:2010-12-20


tb1与tb2 都是RichTextBox,下面代码的目的是将tb2的内容添加到tb1里面去
BlockCollection bc= tb2.Document.Blocks;
tb1.Document.Blocks.AddRange(bc);//运行到这里时报错(集合被修改;枚举操作可能无法执行)。


于是修改了一下:
for(int i=0;i<bc.Count;i++)
{
   tb1.Document.Blocks.Add(bc.??)
}
进行调试的时候,发现把BlockCollection中的一项添加到tb1.Document.Blocks里面的时候,原来的集合里的那项是被移出了的,也就是集合被修改了。而BlcockCollection 这个集合也不能进行索引。只有FirstBlock和LastBlock这两个属性可以得到Block对象。
最后,将代码改成这样就可以正常运行了:
while (bc.Count > 0)
{
      tb1.Document.Blocks.Add(bc.FirstBlock);
}