Материал из VB Эксперт
Перейти к: навигация, поиск

Arrow: draw and fill Polygon

Imports System.Drawing.Drawing2D
Imports System
Imports System.Drawing.Text
Imports System.Drawing
Imports System.Windows.Forms

Public Class MainClass
   Shared Sub Main()
       Dim form1 As Form = New Form1()
   End Sub " ValidationError
End Class

Public Class Form1
    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
        " Set the font and font antialiasing properties.
        Me.Font = New Font("Times New Roman", 20, FontStyle.Bold, GraphicsUnit.Pixel)
        e.Graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit
        " Draw the original arrow.
        DrawArrow(e.Graphics, "Arrow")
    End Sub
    " Draw an arrow outline containing some text.
    Private Sub DrawArrow(ByVal gr As Graphics, ByVal txt As String)
        " Draw the arrow.
        Dim pts() As Point = { _
            New Point(80, 20), _
            New Point(120, 20), _
            New Point(120, 10), _
            New Point(140, 30), _
            New Point(120, 50), _
            New Point(120, 40), _
            New Point(80, 40) _
        gr.FillPolygon(Brushes.White, pts)
        gr.DrawPolygon(Pens.Black, pts)
        " Draw the text.
        Dim layout_rectangle As New RectangleF(80, 20, 50, 20)
        Dim string_format As New StringFormat
        string_format.LineAlignment = StringAlignment.Center
        string_format.Alignment = StringAlignment.Center
        gr.DrawString(txt, Me.Font, Brushes.Black, _
            layout_rectangle, string_format)
    End Sub
End Class
<Global.Microsoft.VisualBasic.rupilerServices.DesignerGenerated()> _
Partial Public Class Form1
    Inherits System.Windows.Forms.Form
    "Form overrides dispose to clean up the component list.
    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing AndAlso components IsNot Nothing Then
        End If
    End Sub
    "Required by the Windows Form Designer
    Private components As System.ruponentModel.IContainer
    "NOTE: The following procedure is required by the Windows Form Designer
    "It can be modified using the Windows Form Designer.  
    "Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        Me.ClientSize = New System.Drawing.Size(292, 273)
        Me.Name = "Form1"
        Me.Text = "TransformArrow"
    End Sub
End Class