只能是int的值
至于从原点开始,是因为屏幕的左上角是(0,0)点

解决方案 »

  1.   

    你的数组放在timer里面定义肯定不对了,每次都定义新的数组,只赋了一个值,其他都是(0,0),放到外面去就可以了
      

  2.   

    很简单呀,虽然不知道你做的是什么,但是问题原因能猜个八九不离十的,你每次timer1_Tick事件中都重新new 一个point,每次都是0,0开始了,你把它设置为全局变量就ok了
      

  3.   

     Graphics qs = pictureBox1.CreateGraphics();
    或者
    Point[]Point = new Point[40000];//定义数组
    放在外面试试看
      

  4.   


    把数组定义为全局变量后,每次变化的X.Y点能连接起来了。可是还是会画个0.0到XY的值线。timer1_Tick中tem++每次都是增加的,怎么会出来个0.0。
      

  5.   

    高手指教啊 Graphics qs = pictureBox1.CreateGraphics();
    无法放到外面  
      

  6.   

    不需要高手,楼主问的都是很基础的问题,你对基本的变量作用域和初始化都还没有理解,需要把基础好好补补了,按照你的写法, Point[]Point = new Point[40000];放在timer触发事件里面,在不停的分配新内存,不停的从第0个位置写入一个新的位置,所以你每次画的都是从(0,0)到你新生成的这个点。而且这里也没有必要使用DrawLines方法不停的从头画一遍,使用DrawLine方法累计往下画就行。废话不多说,看代码
    public partial class Form1 : Form {
            public Form1() {
                InitializeComponent();
                g = this.panel_Canvas.CreateGraphics();//放构造函数或者btn_Start_Click里面都可以
            }        int x, y;
            Graphics g = null;
            List<Point> pList = new List<Point>();//数组有界,这里更应该使用List        private void timer_Draw_Tick(object sender, EventArgs e) {
                Random r = new Random();
                x = r.Next(0, panel_Canvas.Width);
                y = r.Next(1, panel_Canvas.Height);
                pList.Add(new Point(x, y));
                Pen redPen = new Pen(Brushes.Red);
                if (pList.Count > 1) {
                    //这一句你应该能理解是什么意思
                    g.DrawLine(redPen, pList[pList.Count - 2], pList[pList.Count -1]);            }
            }        private void btn_Start_Click(object sender, EventArgs e) {
                timer_Draw.Enabled = true;
            }
        }