在 C# 中可以使用 List<GraphicsPath> 吗?
Is List<GraphicsPath> possible in C#?
我正在尝试使用 GraphicsPath 列表而不是数组,因为我不知道用户将创建的路径数量。
List<GraphicsPath> PathDB = new List<GraphicsPath>();
在此之后我填写如下列表:
using(GraphicsPath myPath = new GraphicsPath())
{
myPath.AddPolygon(myPoints);
PathDB.Add(myPath);
}
但是当我尝试使用列表中的 GraphicsPath 时,虽然计数 属性 是正确的,但由于参数异常,我无法使用如下所示的对象。
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 有关?还是做错了?
using(GraphicsPath myPath = new GraphicsPath())
{
myPath.AddPolygon(myPoints);
PathDB.Add(myPath);
} // this disposes myPath
这是本地图形路径。如果完成,你的 using
块 Dispose
将它放在范围之后。因此,您需要 删除 那个 using
块,而不是在您不再需要它们时处理您的路径。
我正在尝试使用 GraphicsPath 列表而不是数组,因为我不知道用户将创建的路径数量。
List<GraphicsPath> PathDB = new List<GraphicsPath>();
在此之后我填写如下列表:
using(GraphicsPath myPath = new GraphicsPath())
{
myPath.AddPolygon(myPoints);
PathDB.Add(myPath);
}
但是当我尝试使用列表中的 GraphicsPath 时,虽然计数 属性 是正确的,但由于参数异常,我无法使用如下所示的对象。
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 有关?还是做错了?
using(GraphicsPath myPath = new GraphicsPath())
{
myPath.AddPolygon(myPoints);
PathDB.Add(myPath);
} // this disposes myPath
这是本地图形路径。如果完成,你的 using
块 Dispose
将它放在范围之后。因此,您需要 删除 那个 using
块,而不是在您不再需要它们时处理您的路径。