jolle23
Blockchain Validator
LEVEL 1
600 XP
In this tutorial I will teach you how to put an effect in the text using Visual Basic 2008. In here, I use the reflected text for the effect. It reflects any kind of text that you will type at the bottom and you can also change its font size. Others may think that reflected text is just easy to do. But, they were wrong. You have to take a closer look at each codes and calculate everything to make it accurate.
Let’s begin:
Open Visual Basic 2008, create a new Windows Application and drag a PictureBox, a TextBox, a ComboBox and a NumericUpDown. It will look like this.
Double click the Form, go to the solution explorer and click the view code. After that, create a sub procedure for the reflect effects.
Then, create a sub procedure for the name of the effect. Clear and add the item in the ComboBox.
Then, create a sub procedure to draw the text.
Lastly, create a sub procedure for the UIchange.
Ouput:
Download
Let’s begin:
Open Visual Basic 2008, create a new Windows Application and drag a PictureBox, a TextBox, a ComboBox and a NumericUpDown. It will look like this.

Double click the Form, go to the solution explorer and click the view code. After that, create a sub procedure for the reflect effects.
- Private
Sub
DrawReflectText(
)
- Dim
text_size As
SizeF
- Dim
grafx As
Graphics
- Dim
back_brush As
Brush =
Brushes.
Gray
- Dim
fore_brush As
Brush =
Brushes.
Black
- Dim
Fnt As
New
Font(
"Microsoft Sans Serif"
, NumericUpDown1.
Value
, FontStyle.
Regular
)
- Dim
my_state As
GraphicsState 'STORE THE CURRENT STATE OF GRAPHICS
- Dim
x_location, y_location As
Single
'USED FOR THE LOCATION
- Dim
text_height As
Single
- 'CREATE A GRAPHIC OBJECT IN THE PICTURE BOX
- grafx =
PictureBox1.
CreateGraphics
(
)
- 'CLEAR THE GRAPHIC OBJECT
- grafx.
Clear
(
Color.
White
)
- 'SIZE IS REQUIRED TO DRAW THE TEXT
- text_size =
grafx.
MeasureString
(
TextBox1.
Text
, Fnt)
- 'ELIMINATE THE REDUNDANT CALCULATIONS AFTER THE LOCATIONS' ONCE GET
- x_location =
(
PictureBox1.
Width
-
text_size.
Width
)
/
2
- y_location =
(
PictureBox1.
Height
-
text_size.
Height
)
/
2
- 'IN SCALING THE ENTIRE GRAPHIC OBJECTS, WE NEED TO REPOSITION THE ORIGIN OF
- 'IT (0,0) TO THE (xLocation, yLocation) POINT.
- 'IF NOT, WHEN YOU FLIP THE TEXT WITH A SCALING TRANSFORM,
- 'IT WILL DRAW REFLECTED TEXT AT (xLocation, -yLocation)THAT IS OUTSITDE THE VIEWABLE AREA
- grafx.
TranslateTransform
(
x_location, y_location)
- Dim
line_ascent As
Integer
- Dim
line_spacing As
Integer
- Dim
line_height As
Single
- 'USE GETCELLASCENT TO CALCULATE THE HIEGHT ABOVE THE BASELINE.
- 'SINCE IT RETURNS A DESIGN METRIC VALUE YOU HAVE TO CONVERT IT
- 'INTO PIXELS AND SCALED FOR THE FONT SIZE.
- line_ascent =
Fnt.
FontFamily
.
GetCellAscent
(
Fnt.
Style
)
- line_spacing =
Fnt.
FontFamily
.
GetLineSpacing
(
Fnt.
Style
)
- line_height =
Fnt.
GetHeight
(
grafx)
- text_height =
line_height *
line_ascent /
line_spacing
- 'THIS REFLECTS OVER THE LOWEST PORTION OF THE TEXT.
- Dim
line_descent As
Integer
'REFLECT TO THE DESCENDING CHARACTERS
- line_descent =
Fnt.
FontFamily
.
GetCellDescent
(
Fnt.
Style
)
- text_height =
line_height *
(
line_ascent +
line_descent)
/
line_spacing
- 'DRAW THE REFLECTED ONE FIRST TO DEMONSTRATE THE USE OF GRAPHICS STATE OBJECT.
- 'A GRAPHICSSTATE OBJECT MAINTAINS THE GRAPHICS OBJECT.
- 'GRAPHICSSTATE SAVE FIRST.
- my_state =
grafx.
Save
(
)
S
- 'USE THE SCALETRANSFORM WITH A NEGATIVE VALUE TO DRAW THE REFLECTIION
- 'AND USING -1 THE REFLECTED TEXT WILL NOT DISTORT.
- grafx.
ScaleTransform
(
1
, -
1.
0F)
' REFLECTING THE Y DIRECTION
- grafx.
DrawString
(
TextBox1.
Text
, Fnt, back_brush, 0
, -
text_height)
- 'BEFORE IT TRANFORM RESET THE GRAPHICS STATE
- grafx.
Restore
(
my_state)
- 'MAIN TEXT DRAWN.
- grafx.
DrawString
(
TextBox1.
Text
, Fnt, fore_brush, 0
, -
text_height)
- End
Sub
Then, create a sub procedure for the name of the effect. Clear and add the item in the ComboBox.
- Private
Sub
effectlist(
)
- With
ComboBox1.
Items
- .
Clear
(
)
- .
Add
(
"Reflect"
)
- End
With
- End
Sub
Then, create a sub procedure to draw the text.
- Private
Sub
draw_text(
)
- effectlist(
)
- If
ComboBox1.
SelectedItem
Is
Nothing
Then
- ComboBox1.
SelectedIndex
=
0
- End
If
- Select
Case
ComboBox1.
SelectedItem
.
ToString
(
)
- Case
"Reflect"
- Draw_Reflect_Text(
)
- End
Select
- End
Sub
Lastly, create a sub procedure for the UIchange.
- Private
Sub
UIChanged(
ByVal
sender As
System.
Object
, ByVal
e As
System.
EventArgs
)
_
- Handles
TextBox1.
TextChanged
, NumericUpDown1.
ValueChanged
, PictureBox1.
MouseHover
- If
NumericUpDown1.
Value
=
0
Then
- NumericUpDown1.
Value
=
50
- End
If
- draw_text(
)
- End
Sub
Ouput:

Download
You must upgrade your account or reply in the thread to view the hidden content.