日期:2014-05-18  浏览次数:20942 次

关于在panel中画图问题的请教
我在panel中用画图工具画了一个坐标系,本来应该是在panel中央的,但执行程序时小窗口下坐标系显示正确,但是一旦放大窗口坐标系位置就不随panel的变化而变化了,而是停留在原来的地方,请个问大侠指教,有些搞不懂了,谢谢各位了,下面是我的程序。int i, r, h;
  Graphics g = 主视图.CreateGraphics();
  SolidBrush brush1 = new System.Drawing.SolidBrush(Color.Black);
  Pen myPen = new Pen(Color.Black);
  myPen.Width = 1;
  r = (主视图.Width) / 60;
  h = (主视图.Height) / 40;
  //pictureBox4.Height = r * 30;画坐标系
  g.DrawLine(myPen, r * 1, h * 2 * 10, r * 31, h * 2 * 10);
  g.DrawLine(myPen, r * 16, h * 5, r * 16, h * 35);
  // g.DrawLine(myPen, r * 14, r, r * 14, r * 2 * 8 + r);
  Font font1 = new System.Drawing.Font("Arial", 20);
  for (i = 1; i <= 9; i++)//画坐标点
  {
  g.DrawLine(myPen, 1 * r + r * 3 * i, h * 2 * 10 - 2, 1 * r + r * 3 * i, h * 2 * 10 + 2);

  }
  for (i = 1; i <= 9; i++)
  {
  g.DrawLine(myPen, 16 * r - 2, h * 5 + h * 3 * i, 16 * r + 2, h * 5 + h * 3 * i);

  }
主视图是panel的名字

------解决方案--------------------
你应该定义一个区域RECT,让他在窗体中间,当窗体OnResize时,重置这个区域,在OnPaint中所有的画图坐标都以Rect为基准
你那个除60,除80,不一定能保证在中间啊