当前位置:编程学习 > C#/ASP.NET >>

C#怎样绘制Excel样式的表格

我想用C# GDI+绘制 Excel样式的表格,可是边框线总是有问题,不知道哪位高人有办法,尤其是双实线边框。












--------------------编程问答-------------------- 边框线有啥问题??完全不描述。。。 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 2 楼 autosl 的回复:

朋友。
给源码。 --------------------编程问答-------------------- Graphics绘制的任何一根线均由代码控制.出现"双线",则是您的代码绘制了两次,而且两次的端点坐标有偏移.
查找画线代码,尝试在端点坐标处使用+1或者-1的方式处理. --------------------编程问答-------------------- 各位大哥,可能我的问题没有描述清楚。我现在是想绘制出像上图一样的表格边框,可是"双线"样式的边框比较难处理,使用复合画笔总是不能达到满意的效果。 --------------------编程问答-------------------- 实现绘制双线,只不过是在固定的一个矩形内进行四个坐标点向内部的偏移.
左上角:x+2,y+2
右上角:x-2,y+2
左下角:x+2,Height-2
右下角:x-2,Height-2 --------------------编程问答-------------------- 这样搞比较麻烦 --------------------编程问答-------------------- 用直线绘图啊 控制下画笔循环下ok了 --------------------编程问答-------------------- 一下是我使用复合画笔的测试结果:请大家试一下,看看有什么办法没有。



            Pen pen1 = new Pen(Color.Black, 1);
            Pen pen3 = new Pen(Color.Black, 3);
            pen3.CompoundArray = new float[] { 0.0f, 0.25f,  0.75f, 1.0f };

            Graphics g3 = this.CreateGraphics();
            g3.DrawRectangle(pen3, new Rectangle(10, 10, 60, 20));   //图一

            g3.DrawLine(pen3, 100, 10, 100, 30);
            g3.DrawLine(pen3, 100, 10, 160, 10);
            g3.DrawLine(pen1, 100, 30, 160, 30);                    //图二  

            GraphicsPath path = new GraphicsPath();
            path.AddLine(200,10,200,30);
            path.AddLine(200,30,260, 30);
            path.AddLine(260, 30, 260, 10);
            g3.DrawPath(pen3,path);
            g3.DrawLine(pen1, 200, 10, 260, 10);                    //图三

            GraphicsPath path1 = new GraphicsPath();
            path1.AddLine(300, 10, 300, 30);
            path1.AddLine(300, 30, 360, 30);
            path1.AddLine(300, 30, 300, 50);
            g3.DrawPath(pen3, path1);
            g3.DrawLine(pen1, 300, 10, 360, 10);                   //图四 
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,