如果设定g.PageUnit的单位是inch的话,如果2个点的坐标(10,20),(30,30),单位为英寸
        请问如何在form上把这两点之间的线段画出来

解决方案 »

  1.   

    protected override void OnPaint(PaintEventArgs e)
            {
                base.OnPaint(e);
                Graphics g = e.Graphics;
                g.PageScale = 25.4f / 96;
                g.PageUnit = GraphicsUnit.Millimeter;
                Matrix matrix = new Matrix(1, 0, 0, -1, 0, 0);
                g.Transform = matrix;
                g.TranslateTransform(0, this.Height,  System.Drawing.Drawing2D.MatrixOrder.Append);
                 
                g.DrawLine(Pens.Red, 0, 0, 100, 100);
                g.DrawString("ABCDEFG", new Font("Verdana", 20, FontStyle.Bold, GraphicsUnit.Pixel), Brushes.White, 0, 0);        }
            protected override void OnMouseDown(MouseEventArgs e)
            {
                base.OnMouseDown(e);
                MessageBox.Show(e.X.ToString() + "--" + e.Y.ToString());
            }对话框显示的还是以左上角为原点的坐标系,和我想象的不一样! 着急!
      

  2.   

    protected override void OnMouseDown(MouseEventArgs e)
            {
                base.OnMouseDown(e);
                MessageBox.Show(e.X.ToString() + "--" + e.Y.ToString());
            }
    我你的程序运行了一下,看到MessageBox显示的是你单击窗口时,你的鼠标所在的位置..但我不知道你要实现什么?
      

  3.   

    我要显示的是一个点在我定义的坐标系里面的坐标,而不是MessageBox.Show(e.X.ToString() + "--" + e.Y.ToString());显示的系统默认的坐标