我正在尝试使用GraphicsPath列表而不是数组,因为我不知道用户将创建的路径数。
List<GraphicsPath> PathDB = new List<GraphicsPath>();
在此之后,我填写列表如下:
using(GraphicsPath myPath = new GraphicsPath())
{
myPath.AddPolygon(myPoints);
PathDB.Add(myPath);
}
但是当我尝试使用列表中的GraphicsPath时,虽然Count属性是正确的,但由于参数异常,我无法使用下面的对象。
num = PathDB.Count;
for(int k=0; k < num; k++)
{
using(GraphicsPath myCurrentPath = new GraphicsPath())
{
myCurrentPath = PathDB[k];
myCurrentPath.AddLine(0,0,400,400); //at this stage exception is thrown
myGraphics.DrawPath(myPen, myCurrentPath)
}
}
它与GraphicsPath有关吗?是Disposabe ??或者做smt错了?
using(GraphicsPath myPath = new GraphicsPath())
{
myPath.AddPolygon(myPoints);
PathDB.Add(myPath);
} // this disposes myPath
这是一个本地图形路径。你的using
阻止Dispose
s它在范围之后如果完成。所以你需要删除那个using
块,而不是在你不再需要它时处理你的路径。