我编写了一个 Windows 窗体 C# 应用程序,用于绘制诸如线条之类的矢量基元。椭圆等。我有一种方法可以更改所选图形的边框宽度。这是方法:
public void SetBorderWidth(int border)
{
if (border < 0)
return;
if ((SelectedItem != null) && (SelectedItem.isGroup == false))
{
SelectedItem.BorderWidth = border;
}
if ((SelectedItem != null) && (SelectedItem.isGroup == true))
{
ChangeCascadeBorderWidth(SelectedItem, border);
}
foreach (Shape figure in ObjectsDrawn)
{
if (figure.Selected)
{
ObjectsDrawn[ObjectsDrawn.IndexOf(figure)].BorderWidth = border;
}
if (figure.isGroup)
{
ChangeCascadeBorderWidth(figure, border);
}
}
}
谁调用该方法:
private void ChangeCascadeBorderWidth(Shape group, int width)
{
foreach (Shape item in ((Grouping)group).GroupedElements)
{
if (item.isGroup == true)
{
ChangeCascadeBorderWidth(item, width);
}
else
{
item.BorderWidth = width;
}
}
}
如果该图是几个图的组。但这工作太慢了。无论我选择一个或一组数字,有时我都需要等待 10-15 秒。用于更改边框宽度。为什么这么慢?