2014-04-15 19 views
0

我正在使用drawline函數繪製水平線和垂直線來製作X-Y座標圖。其中的問題是每次繪製其他形狀(如矩形和橢圓形)時背景圖的閃爍。每次我寫一個新的形狀對象drawline函數執行和重新加載,所以閃爍的效果,直到我停止drawing.How解決這個問題?我使用drawline函數只爲這個backgroundgraph,而不是在我的應用程序中使用任何線條形狀。我試圖drawline在formload中,但它不能作爲formload和drawline不匹配的參數。所以我怎樣才能使這個圖形不變(只調用一次)?如何在表單加載時只使用一次drawline函數?

這裏是代碼:

private void draw(Graphics e, Point mold, Point mcur, int mshape, float mwidth, Color mcolor) 
    { 

     int numOfCells = 100; 
     int cellSize = 25; 

      for (int i = 0; i < numOfCells; i++) 
      { 
       Pen pn = new Pen(Color.LightSlateGray, ((mwidth - 1)/25)); 
       // Vertical 
       e.DrawLine(pn, i * cellSize, 0, i * cellSize, numOfCells * cellSize); 
       // Horizontal 
       e.DrawLine(pn, 0, i * cellSize, numOfCells * cellSize, i * cellSize); 
      } 

     Pen p = new Pen(mcolor, mwidth); 
     switch (mshape) 
     { 
      case 0: e.DrawRectangle(p, rec(mold, mcur)); 
         break; 
      case 1: e.DrawEllipse(p, rec(mold, mcur)); 
         break; 
     } 
    }   
    private Rectangle rec(Point P1, Point P2) 
    { 
     Rectangle a = new Rectangle(); 
     a.X = (P1.X > P2.X ? P2.X : P1.X); 
     a.Y = (P1.Y > P2.Y ? P2.Y : P1.Y); 
     a.Width = Math.Abs(P1.X - P2.X); 
     a.Height = Math.Abs(P1.Y - P2.Y); 
     return a; 
    } 

回答

相關問題