Hozzunk létre egy új Visual Basic projektet. A program indítható festés a gombot , amely lehet tenni a " AddEllipse " osztályban. Írja be a következő a Visual Basic ablak :
Dim a As New System.Drawing.Drawing2D.GraphicsPath
recRegion = Új RectangleF ( 0, 0 , Me.Width , Me.Height )
a.AddEllipse ( recRegion )
Me.Region = Új régió ( a)
2
Döntetlen a szélén a gombok . Annak érdekében, hogy sima görbék húzott, állítsa a SmoothingMode tulajdonság Antialias . Írja be a következő kódot a Visual Basic ablak :
Dim P1 Pen
Dim P2 Pen
recBorder = Új RectangleF ( 1, 1, Me.Width - 2 , Me.Height - 2 )
" Ez a sor nagyon fontos , hogy sima görbék .
g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
' most kell felhívni a 3D-s hatást.
g.DrawArc ( p1 , recBorder , 180, -180 )
g.DrawArc ( p2, recBorder , 180, 180 ),
3
Helyezze szöveges címkét belül a gombot , és írjuk be a fő vezérlő hurok , hogy megállapítsa, a gomb megnyomása . Írja be a következő kódot a Visual Basic ablak :
" méretének mérésére a String központosítani is .
" Ha egy kép jelen van , a szöveg készült az ikon mellett .
Dim szövegméret Mint SizeF = g.MeasureString ( Me.Text , Me.Font )
" Ha az egér nyomva felhívni a szöveg és a kép , ha rendelkezésre áll , eladás
' tolódott 2 pixel a jogot, hogy szimulálja a 3D hatást
Ha Me.mousePressed Ezután
Ha Me._Image semmi Ezután
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 téglalap ( PT, új méret ( 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
Ha Me._Image semmi Ezután
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 téglalap ( PT, új méret ( 16, 16 ) )
g.DrawImage ( _Image , recString )
g . zsinórral ( Me.Text , Me.Font , stringBrush , _
recString.X + recString.Width + 3
( ( ( Me.Height + 2) - textSize.Height ) /2 ) )
End If
End If
4
Mentse el a programot , és a program futtatásához. Egy ablak jelenik meg egy sor kör és ellipszis alakú gombok .