日期:2008-06-10  浏览次数:20431 次

下面的例子通过重载Form1窗体的OnPaint()方法绘制GDI图形
Protected Overrides Sub onpaint(ByVal e As System.Windows.Forms.PaintEventArgs)

        '/////////////绘制任意直线
        Dim g As Graphics = e.Graphics
        Dim mypen As Pen = New Pen(Color.Red, 2)
        g.DrawLine(mypen, 100, 100, 10, 10)
        '/////////////绘制矩形(任意直线构成的封闭图形)
        Dim point1 As PointF = New PointF(100F, 100F)
        Dim point2 As PointF = New PointF(200F, 100F)
        Dim point3 As PointF = New PointF(200F, 200F)
        Dim point4 As PointF = New PointF(100F, 200F)
        Dim curvepoints As PointF() = {point1, point2, point3, point4}
        g.DrawPolygon(New Pen(Color.Blue, 2), curvepoints)
        '////////////文本表示
        Dim FFamily As FontFamily = New FontFamily("Arial")
        Dim font As Font = New Font(FFamily, "20", FontStyle.Bold, FontStyle.Italic, GraphicsUnit.Pixel)
        Dim text As String = "I love you!"
        Dim solidbrush As SolidBrush = New SolidBrush(Color.Red)
        Dim pr As PointF = New PointF(100, 10)
        e.Graphics.DrawString(text, font, solidbrush, pr)
        '////////////平面绘制
        Dim rec As RectangleF = New RectangleF(10, 10, 200, 100)
        g.DrawPie(mypen, rec, 150, 150)
        '///////////封闭图形,0.7应该是个圆
        g.DrawClosedCurve(mypen, curvepoints, 0.7, Drawing.Drawing2D.FillMode.Alternate)
        '///////////大家自己试试看吧
        g.DrawArc(mypen, 300, 300, 200, 200, 100, 100)
        g.DrawCurve(mypen, curvepoints)
        g.DrawBezier(mypen, 50, 50, 100, 50, 100, 100, 50, 100)
        g.DrawBeziers(mypen, curvepoints)
        '//////////这可是一个圆
        Dim rec1 As RectangleF = New RectangleF(10, 10, 100, 100)
        g.DrawEllipse(mypen, rec1)
        '//////////这是一个椭圆
        Dim rec2 As RectangleF = New RectangleF(10, 10, 200, 100)
        g.DrawEllipse(mypen, rec2)

    End Sub

这些是我自己试验出来的,当然了,还有好多,我只是开了一个头,大家要是发现什么好东东,别忘了通知一下:)