首先说明的是我是一点都不会啊,看书上的GDI+又是直接在form上画的,就没怎么看
我的目的是在点确定按钮以后,就把一个数组绘成类似这样的图求添加坐标轴的方法,曲线应该就像画直线一样添加点就好了,点密一点就平滑了
先不考虑坐标轴的最大值问题吧,先搞会怎么画图
然后我再自己研究一下根据曲线的最大值来自动更改坐标轴的范围
另外,
想把绘图的方法写在另一个cs类文件里,但是这样的话,form里的按钮要执行这个方法就要实例化一个这个类
而这个方法要使用picturebox又要实例化一个form类,就死循环了
又该怎么解决啊?C#控件GDI+picturebox

解决方案 »

  1.   

    谁说gdi+只能在form上面绘图的,你在那个类定义一个public void Render(Graphics g);不就可以了吗
    调用的时候你想在哪里画就创建相应的绘图表面
    当前form    this.CreateGraphics();
    picturebox  Craphics.FromImage(picturebox.Image)传入:Render
      

  2.   


    求详细啊,我还处于啥都不会的状态,看不懂啊
    那你应该先去找书看明白gdi+。
    如果太麻烦也可以把准备买书的RMB交出来,自然有人帮你做好了。
      

  3.   

    画图方法示例
    Graphics g;
    //画图片
    g.DrawImage(image, this.iX, this.iY);
    //画直线
    g.DrawLine(new Pen(Color.Black), new Point(1, 1), new Point(1, 3));
    至于Graphics对象,1楼说了。
    如果在窗体上画就是this.CreateGraphics();
    如果你想在picturebox1上画就是picturebox1.CreateGraphics();
    你画个图应该不用这样,把picturebox1.CreateGraphics()作为函数参数就行了。
      

  4.   

    我也是小白,告诉你个简单的方法
    用绘图工具先把form背景画好。
    然后
    Bitmap Bmp = new Bitmap(@"C:\Documents and Settings\Administrator\桌面\Bmp.bmp");//读取桌面的图片并在程序里创建它
    this.pictureBox1.Image = Bmp;//在pictureBox1的控件里绘制Bmp
    Graphics g = Graphics.FromImage(Bmp);//在Bmp上创建一张画布
    int num = 100;//声明一个变量表示点的个数
    Point[] pD = new Point[num];//声明点的数组
    g.DrawLines(Pens.Blue, pD);//用蓝色线段按顺序连接每个点(曲线)
    差不多就这样,希望对你有帮助!
      

  5.   

    建议LZ找一份DEMO   照着代码试着操作一下    之前也不咋会   整了份demo 试试 学起来还是很快的
    小白路过~
      

  6.   

    你画个图应该不用这样,把picturebox1.CreateGraphics()作为函数参数就行了。有点不懂,picturebox1.CreateGraphics();应该是写在form的代码里吧
    Graphics类里面的方法好多,看起来是用来画画的,应该写在画图的cs文件里吧
    怎么通过g.DrawLine绘图呢