C#实现流程图设计器

2019-12-30 11:10:40王冬梅
  • if (CurrObj.Type == "") IsLine = "N/D";  if (CurrObj.Type == "Line") IsLine = "Y"; 
  • if ((CurrObj.Type != "Line") && (CurrObj.Type != "")) IsLine = "N";  // 
  • #region old panel1作为画布,将其嵌套在panel2中实现超出边界出现滚动条   
  • if (_maxX < CurrObj.x2)  { 
  • _maxX = CurrObj.x2;  } 
  • if (_maxY < CurrObj.y2)  { 
  • _maxY = CurrObj.y2;  } 
  • if (_minX > CurrObj.x1)  { 
  • _minX = CurrObj.x1;  } 
  • if (_minY > CurrObj.y1)  { 
  • _minY = CurrObj.y1;  } 
  •    
  •   if (_oldW < _maxX - _minX) 
  • {  this.panel1.Width = _maxX - _minX; 
  • }  if (_oldH < _maxY - _minY) 
  • {  this.panel1.Height = _maxY - _minY; 
  • }  if (this.panel1.Height < this.panel2.Height) 
  • {  this.panel1.Height = this.panel2.Height; 
  • }  if (this.panel1.Width < this.panel2.Width) 
  • {  this.panel1.Width = this.panel2.Width; 
  • }   
  • #endregion   
  •   switch (IsLine) 
  • {  case "Y": 
  • arrow.DrawArrow(g, p, p.Brush, CurrObj.x1, CurrObj.y1, CurrObj.x2, CurrObj.y2);  xm = (CurrObj.x1 + CurrObj.x2) / 2; 
  • ym = (CurrObj.y1 + CurrObj.y2) / 2;  AddText(xm, ym, CurrObj.Name, false); 
  • break;  case "N": 
  • Rct.X = CurrObj.x1;  Rct.Y = CurrObj.y1; 
  • Rct.Width = CurrObj.x2 - CurrObj.x1;  Rct.Height = CurrObj.y2 - CurrObj.y1; 
  • if (CurrObj.Type != String.Empty)  { 
  • ObjImg = FindGObjectTypeImage(CurrObj.Type);  g.DrawImage(ObjImg, Rct);