This tutorial will show you how to make an onscreen keyboard in visual basic .net.
The most important step in this tutorial is placing the keys(Buttons) on the form. In order to follow with this tutorial, I have included a map that shows the name of each button on the form:
The Red text in the following picture indicates the name of each control. The black text indicates the text property of each button
Below, the picture shows how the Onscreen Keyboard look like:
After preparing the form and adding the buttons on it according the same order of the first picture, let's program the buttons:
The following code will handle the click of all the typing keys. It will also check if the Shift key is pressed:
Typing Keys:
Private Sub Button28_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click, _
Button8.Click, Button7.Click, Button6.Click, Button5.Click, Button48.Click, Button47.Click, _
Button46.Click, Button45.Click, Button44.Click, Button43.Click, Button42.Click, Button41.Click, _
Button40.Click, Button4.Click, Button39.Click, Button38.Click, Button37.Click, Button36.Click, _
Button35.Click, Button34.Click, Button33.Click, Button32.Click, Button31.Click, Button30.Click, _
Button3.Click, Button29.Click, Button28.Click, Button26.Click, Button25.Click, Button24.Click, _
Button23.Click, Button22.Click, Button21.Click, Button20.Click, Button2.Click, Button19.Click, _
Button18.Click, Button17.Click, Button16.Click, Button15.Click, Button14.Click, Button13.Click, _
Button12.Click, Button11.Click, Button10.Click, Button1.Click
If ShiftR.FlatStyle = FlatStyle.Flat Then
TextBox1.Text = TextBox1.Text + sender.text
ShiftR.PerformClick()
Else
TextBox1.Text = TextBox1.Text + sender.text
End If
End Sub
Backspace Key
The following code will handle the Backspace button click event:
Private Sub Back_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Back.Click
If TextBox1.Text < " " Then
TextBox1.Text = Mid(TextBox1.Text, 1, Len(TextBox1.Text) - 1 + 1)
Else
TextBox1.Text = Mid(TextBox1.Text, 1, Len(TextBox1.Text) - 1)
End If
End Sub
Enter Key
The following code will handle the Enter button click event:
Private Sub Enter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Enter.Click
TextBox1.Text = TextBox1.Text & Environment.NewLine
End Sub
Righ and Left Shift Keys
The following code will handle both right and left Shift keys:
Private Sub ShiftR_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ShiftR.Click, ShiftL.Click
If ShiftR.FlatStyle = FlatStyle.Flat Then
ShiftR.FlatStyle = FlatStyle.Standard
ShiftL.FlatStyle = FlatStyle.Standard
For Each ctl As Control In Me.Controls
If (ctl.Name.StartsWith("Button")) Then
Dim btn As Button = DirectCast(ctl, Button)
btn.Text = btn.Text.ToLower
Button1.Text = "1"
Button2.Text = "2"
Button3.Text = "3"
Button4.Text = "4"
Button5.Text = "5"
Button6.Text = "6"
Button7.Text = "7"
Button8.Text = "8"
Button9.Text = "9"
Button10.Text = "0"
Button11.Text = "-"
Button12.Text = "="
Button13.Text = "`"
Button14.Text = "\"
Button15.Text = "]"
Button16.Text = "["
Button29.Text = "'"
Button30.Text = ";"
Button28.Text = "/"
Button40.Text = "."
Button41.Text = ","
End If
Next
ElseIf ShiftR.FlatStyle = FlatStyle.Standard Then
ShiftL.FlatStyle = FlatStyle.Flat
ShiftR.FlatStyle = FlatStyle.Flat
For Each ctl As Control In Me.Controls
If (ctl.Name.StartsWith("Button")) Then
Dim btn As Button = DirectCast(ctl, Button)
btn.Text = btn.Text.ToUpper
Button1.Text = "!"
Button2.Text = "@"
Button3.Text = "#"
Button4.Text = "$"
Button5.Text = "%"
Button6.Text = "^"
Button7.Text = "&"
Button8.Text = "*"
Button9.Text = "("
Button10.Text = ")"
Button11.Text = "_"
Button12.Text = "+"
Button13.Text = "~"
Button14.Text = "|"
Button15.Text = "}"
Button16.Text = "{"
Button29.Text = """"
Button30.Text = ":"
Button28.Text = "?"
Button40.Text = ">"
Button41.Text = "<"
End If
Next
End If
End Sub
Caps Lock Key:
The followng code will handle the Caps Lock button click event:
Private Sub Caps_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Caps.Click
If Caps.FlatStyle = FlatStyle.Flat Then
Caps.FlatStyle = FlatStyle.Standard
Caps.BackColor = Color.FromKnownColor(KnownColor.Control)
For Each ctl As Control In Me.Controls
If (ctl.Name.StartsWith("Button")) Then
Dim btn As Button = DirectCast(ctl, Button)
btn.Text = btn.Text.ToLower
Button1.Text = "1"
Button2.Text = "2"
Button3.Text = "3"
Button4.Text = "4"
Button5.Text = "5"
Button6.Text = "6"
Button7.Text = "7"
Button8.Text = "8"
Button9.Text = "9"
Button10.Text = "0"
Button11.Text = "-"
Button12.Text = "="
Button13.Text = "`"
Button14.Text = "\"
Button15.Text = "]"
Button16.Text = "["
Button29.Text = "'"
Button30.Text = ";"
Button28.Text = "/"
Button40.Text = "."
Button41.Text = ","
End If
Next
ElseIf Caps.FlatStyle = FlatStyle.Standard Then
Caps.FlatStyle = FlatStyle.Flat
Caps.BackColor = Color.LightGreen
For Each ctl As Control In Me.Controls
If (ctl.Name.StartsWith("Button")) Then
Dim btn As Button = DirectCast(ctl, Button)
btn.Text = btn.Text.ToUpper
Button1.Text = "!"
Button2.Text = "@"
Button3.Text = "#"
Button4.Text = "$"
Button5.Text = "%"
Button6.Text = "^"
Button7.Text = "&"
Button8.Text = "*"
Button9.Text = "("
Button10.Text = ")"
Button11.Text = "_"
Button12.Text = "+"
Button13.Text = "~"
Button14.Text = "|"
Button15.Text = "}"
Button16.Text = "{"
Button29.Text = """"
Button30.Text = ":"
Button28.Text = "?"
Button40.Text = ">"
Button41.Text = "<"
End If
Next
End If
End Sub
The Tab Key:
The following code will handle the Tab key click event:
Private Sub Tab_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tab.Click
TextBox1.Text = TextBox1.Text & " "
End Sub
The Space Key
The following code will handle the Space key click event:
Private Sub Space_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Space.Click
TextBox1.Text = TextBox1.Text & " "
End Sub
No comments:
Post a Comment