-1

我正在尝试使用 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做错了?

4

1 回答 1

3
using(GraphicsPath myPath = new GraphicsPath())
{
   myPath.AddPolygon(myPoints);
   PathDB.Add(myPath);
} // this disposes myPath

这是一个本地图形路径。如果完成,您的using块在范围之后。Dispose因此,您需要删除using块,并在不再需要它们时处理您的路径。

于 2017-12-18T09:33:07.113 回答