**各位老大进来指点一下。现在我要实现的是画流程图。可是实现的时候出现问题。比如同时画两个图,可是运行时是只能画出第一个图。
现在我要实现的是画流程图。可是实现的时候出现问题。比如同时画两个图,可是运行时是只能画出第一个图。我的代码如下:
webForm1.aspx.cs
private void Page_Load(object sender, System.EventArgs e)
{
IGraphics MyGraphic = null;
IGraphics MyGraphic1 = null;
GraphicsFactory MyGraphicsFactory = new GraphicsFactory();
MyGraphic = MyGraphicsFactory.MakeGraphic("arrowLine",Response);
MyGraphic1 = MyGraphicsFactory.MakeGraphic("ellipse",Response);
}
我只能画出arrowLine,而ellipse却画不出来。我把arrowLine注释掉后面的ellipse就能画出来了。为什么只能画出一个呢。。
画图的类:GraphicsFactory.cs
//图形接口
public interface IGraphics{}
//工厂类
public class GraphicsFactory
{
public IGraphics MakeGraphic(string Name,System.Web.HttpResponse Response)
{
IGraphics MyGraphic = null;
try
{
Type type = Type.GetType("Paint.Class."+Name);
MyGraphic = (IGraphics)Activator.CreateInstance(type,new object[]{Response});
}
catch (TypeLoadException e) {throw e;}
return MyGraphic;
}
}
//画带箭头的折线
public class arrowLine:IGraphics
{
public arrowLine(System.Web.HttpResponse Response)
{
Bitmap image = new Bitmap(400,400);
Graphics g = Graphics.FromImage(image);
g.Clear(System.Drawing.Color.White);
AdjustableArrowCap myArrow = new AdjustableArrowCap(6,6);
CustomLineCap customArrow = myArrow;
Pen capPen = new Pen(Color.Black,1);
capPen.CustomEndCap = customArrow;
g.DrawLines(capPen,new Point[]{new Point(10,10),new Point(80,10),new Point(80,160),new Point(10,160)});
image.Save(Response.OutputStream,ImageFormat.Jpeg);
}
}
//画椭圆形
public class ellipse:IGraphics
{
public ellipse(System.Web.HttpResponse Response)
{
//画椭圆形代码
}
}