我想绘制一个虚线的矩形方格,在里面填写数据,  之后用打印预览显示出来,,,
请问应该怎么写啊,     写的详细可以多开帖加分,

解决方案 »

  1.   

    //printDocument1_PrintPage中定义myPen.DashStyle X,Y 为起点坐标,W H为宽和高
     StringFormat StringF = new StringFormat();    
    StringF.Alignment = StringAlignment.Center;  // 对齐方式  Font Myfont = new Font("宋体", 11);设定字体和大小
        Pen myPen = new Pen(Color.ForestGreen, 4.0F); 
        myPen.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDotDot; //设定笔      RectangleF drawRect = new RectangleF(x, Y, w, h); //设定绘制位置和大小
          e.Graphics.DrawRectangle(Pens.Black, x, j, w, h);
          e.Graphics.DrawString("XXXXXXXXX", Myfont, mypen.Brush, drawRect, StringF);
      

  2.   

    Form1中放如下控件:
    textbox1(Textbox)
    button1(Button)
    printDocument1(PrintDocument)
    printPreviewDialog1(PrintPreviewDialog)printPreviewDialog1的Document属性设置为printDocument1Form1相关代码:private void Form1_Load(object sender, EventArgs e)
            {        }        private void button1_Click(object sender, EventArgs e)
            {
                printPreviewDialog1.Show();
            }        private void Form1_Paint(object sender, PaintEventArgs e)
            {
                Graphics g = e.Graphics;
                Pen pen = new Pen(Color.Blue, 2);
                pen.DashStyle = DashStyle.Custom;
                pen.DashPattern = new float[] { 1f, 1f };
                g.DrawRectangle(pen, new Rectangle(textBox1.Location, textBox1.Size));
                pen.Dispose();
                g.Dispose();
            }        private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
            {
                Graphics g = e.Graphics;
                Pen pen = new Pen(Color.Blue, 2);
                pen.DashStyle = DashStyle.Custom;
                pen.DashPattern = new float[] { 1f, 1f };
                g.DrawRectangle(pen, new Rectangle(textBox1.Location, textBox1.Size));
                g.DrawString(textBox1.Text, textBox1.Font, new SolidBrush(textBox1.ForeColor), textBox1.Location.X, textBox1.Location.Y + 5);
                pen.Dispose();
            }
    效果图: