Crear un nuevo proyecto de Visual Basic . El programa puede ser iniciado por la pintura en el botón , lo que puede hacerse usando el " AddEllipse " clase. Escriba lo siguiente en la ventana de Visual Basic :
Dim a As New System.Drawing.Drawing2D.GraphicsPath
recRegion = Nuevo RectangleF ( 0 , 0, Me.Width , Me.Height )
a.AddEllipse ( recRegion )
Me.Region = Nueva Región ( a)
2
Dibuja el borde de los botones. Para asegurarse de suaves curvas se dibujan , establezca la propiedad SmoothingMode en AntiAlias . Escriba el siguiente código en la ventana de Visual Basic :
Dim p1 Como Pen
Dim p2 Como Pen
recBorder = Nuevo RectangleF ( 1 , 1, Me.Width - 2 , Me.Height - 2 )
' Esta línea es muy importante contar con curvas suaves
g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
. " Ahora tenemos que dibujar el efecto 3D
.
g.DrawArc ( p1, recBorder , 180, -180 )
g.DrawArc (p2 , recBorder , 180, 180 ),
3
Coloque una etiqueta de texto en el interior el botón , y escribir el bucle principal de control para determinar si un botón ha sido presionado. Escriba el siguiente código en la ventana de Visual Basic :
' . Mida el tamaño de la cadena de centralizar él
' Si una imagen está presente, el texto se dibuja al lado del icono <. br>
Dim TEXTSIZE Como SizeF = g.MeasureString ( Me.Text , Me.Font )
' Si se pulsa el ratón dibujar el texto y la imagen , si está disponible ,
' cambió 2 píxeles a la derecha para simular el efecto 3D
Si Me.mousePressed Entonces
Si Me._Image es nada entonces
g.drawString ( Me.Text , Me.Font , stringBrush , _
( ( ( Me.Width + 3 ) - textSize.Width ) /2 ) + 2 , _
( ( ( Me.Height + 2 ) - textSize.Height ) /2 ) + 2 )
Else
Dim pt As New Point ((( Me.Width + 3 ) /12 ) + 1 , _
( ( Me.Height + 2 - 16) /2 ) + 1 )
Dim recString As New Rectangle (pt , Tamaño ( 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
Si Me._Image es nada entonces
g.drawString ( Me.Text , Me.Font , stringBrush , _
((( Me.Width + 3 ) - textSize.Width ) /2 ) , _
((( Me.Height + 2 ) - textSize.Height ) /2 ) )
Else
Dim pt As New Point ( ( Me.Width + 3 ) /12 , ( Me.Height + 2 - 16) /2 )
Dim recString As New Rectangle (pt , Tamaño ( 16 , 16 ) )
g.drawImage ( _Image , recString )
g . DrawString ( Me.Text , Me.Font , stringBrush , _
recString.X + recString.Width + 3 ,
((( Me.Height + 2 ) - textSize.Height ) /2 ) )
End If End If
4
Guarde el programa y ejecutar el programa. Una ventana se abrirá con una serie de botones circulares y elípticas .