Crie um novo projeto Visual Basic. O programa pode ser iniciado por pintura do botão , o qual pode ser feito usando o " AddEllipse " classe. Digite o seguinte na janela do Visual Basic :
Dim a As New System.Drawing.Drawing2D.GraphicsPath
recRegion = New Rectangle ( 0, 0, Me.Width , Me.Height )
a.AddEllipse ( recRegion )
Me.Region = Novo Região ( a)
2
Desenhar a borda dos botões. Para garantir curvas suaves são desenhados , defina a propriedade SmoothingMode para AntiAlias . Digite o seguinte código na janela de Visual Basic :
Dim p1 Como Pen
Dim p2 Como Pen
recBorder = New Rectangle ( 1, 1, Me.Width - 2, Me.Height - 2)
" Esta linha é muito importante ter curvas suaves
g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
. " Agora precisamos tirar o efeito 3D Fotografia .
g.DrawArc ( p1, recBorder , 180, -180 )
g.DrawArc (p2 , recBorder , 180, 180 ),
3
Coloque uma etiqueta de texto dentro o botão , e escrever a malha de controle principal para determinar se um botão foi pressionado. Digite o seguinte código na janela de Visual Basic :
. Meça o tamanho da String para centralizar ele
' Se uma imagem estiver presente, o texto é desenhado ao lado do ícone
Dim textSize Como SizeF = g.MeasureString ( Me.Text , Me.Font )
' Se o mouse é pressionado desenhar o texto ea imagem , se disponível,
' mudou 2 pixels para a direita para simular o efeito 3D Fotografia
Se Me.mousePressed Então
Se Me._Image é nada Então
g.drawString ( Me.Text , Me.Font , stringBrush , _
( ( ( Me.Width + 3 ) - textSize.Width ) /2 ) + 2 , _
( ( ( Me.Height + 2 ) - textSize.Height ) /2 ) + 2 )
Else
Dim PT como New Point ((( Me.Width + 3) /12) + 1 , _
( ( Me.Height + 2 - 16) /2) + 1)
Dim recString As New Rectangle (pt , New Size ( 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
Se Me._Image é nada Então
g.drawString ( Me.Text , Me.Font , stringBrush , _
((( Me.Width + 3) - textSize.Width ) /2 ) , _
((( Me.Height + 2) - textSize.Height ) /2) )
Else
Dim PT como New Point ( ( Me.Width + 3) /12 , ( Me.Height + 2 - 16) /2)
Dim recString As New Rectangle (pt , New Size ( 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
Salve o programa e execute o programa. Uma janela deve aparecer com uma série de botões circulares e elípticas.