Maak een nieuw Visual Basic project . Het programma kan worden gestart door het schilderen van de toets , die kan worden gedaan met behulp van de " AddEllipse " klasse . Typ het volgende in de Visual Basic- venster :
Dim a As New System.Drawing.Drawing2D.GraphicsPath
recRegion = Nieuwe RectangleF ( 0 , 0 , Me.Width , Me.Height )
a.AddEllipse ( recRegion )
Me.Region = Nieuwe Regio ( a) het kopen van 2
Teken de rand van de knoppen . Om ervoor te zorgen vloeiende lijnen worden getrokken , stelt u de eigenschap SmoothingMode te AntiAlias . Typ de volgende code in de Visual Basic- venster :
Dim p1 Zoals Pen
Dim p2 Zoals Pen
recBorder = Nieuwe RectangleF ( 1 , 1 , Me.Width - 2 , Me.Height - 2 )
' Deze lijn is zeer belangrijk om vloeiende rondingen hebben
g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
. ' Nu moeten we het 3D-effect te tekenen
.
g.DrawArc ( p1 , recBorder , 180 , -180 )
g.DrawArc ( p2 , recBorder , 180 , 180 )
Plaats Goedkope 3 een tekst label aan de binnenkant op de knop , en schrijf de belangrijkste controle- lus om te bepalen of een knop is ingedrukt . Typ de volgende code in de Visual Basic- venster :
' . Meet de grootte van de String te centraliseren
' Als een afbeelding aanwezig is , is de tekst opgesteld naast het pictogram <. br>
Dim tekstgrootte Zoals SizeF = g.MeasureString ( Me.Text , Me.Font )
' Als de muis wordt ingedrukt teken de tekst en het beeld , indien beschikbaar ,
' verschoven 2 pixels naar rechts om het 3D-effect te simuleren
Als Me.mousePressed dan
Als Me._Image dan niets is
g.drawString ( Me.Text , Me.Font , stringBrush , _
( ( ( Me.Width + 3 ) - textSize.Width ) /2 ) + 2 , _
( ( ( Me.Height + 2 ) - textSize.Height ) /2 ) + 2 )
Else
Dim pt als Nieuwe Point ( ( ( Me.Width + 3 ) /12 ) + 1 , _
( ( Me.Height + 2 - 16 ) /2 ) + 1 )
Dim recString als Nieuwe Rectangle ( pt , Nieuw Maat ( 16, 16 ) )
g.DrawImage ( _Image , recString )
g.drawString ( Me.Text , Me.Font , stringBrush , _
recString.X + recString.Width + 3 ,
( ( ( Me.Height + 2 ) - textSize.Height ) /2 ) + 2 )
End If
Else
Als Me._Image dan niets is
g.drawString ( Me.Text , Me.Font , stringBrush , _
( ( ( Me.Width + 3 ) - textSize.Width ) /2 ) , _
( ( ( Me.Height + 2 ) - textSize.Height ) /2 ) )
Else
Dim pt als Nieuwe Point ( ( Me.Width + 3 ) /12 , ( Me.Height + 2 - 16 ) /2 )
Dim recString als Nieuwe Rectangle ( pt , Nieuw Maat ( 16, 16 ) )
g.DrawImage ( _Image , recString )
g . trekkoord ( Me.Text , Me.Font , stringBrush , _
recString.X + recString.Width + 3 ,
( ( ( Me.Height + 2 ) - textSize.Height ) /2 ) )
End If
End If
4
Sla het programma en start het programma . Een venster moet verschijnen met een reeks cirkelvormige en elliptische knoppen .