BackSpace Button Coding for Calculator Project in VB.Net2008
ကၽြန္ေတာ္႔အေနနဲ႔ IDCS, IADCS ေက်ာင္းသား အခ်ိဳ႕ကို VB.NET အေျခခံ ေလးေတြ သင္ေပးျဖစ္ပါတယ္။ အခ်ိဳ႕ အလြန္ လြယ္ကူတဲ႔ ကုဒ္ဒင္းေလးေတြကို စတင္ေလ႔လာကာစ လူငယ္ေတြ ေလ႔လာႏိုင္ေအာင္ တင္ေပးလိုက္ပါတယ္ ခင္ဗ်ာ။
ဒီကုဒ္ေလးကေတာ႔ Calculator Project မွာ txtInput ဆိုတဲ႔ textbox တစ္ခုထဲကို ရိုက္ထည္႔ထားတဲ႔ စာလံုးေတြ BackSpace သံုးသလိုမ်ိဳး တစ္လံုးခ်င္း ျပန္ဖ်က္ဖို႔ အသံုးျပဳထားတာ ျဖစ္ပါတယ္။ အသံုးျပဳထားတဲ႔ Programming Software ကေတာ႔ Visual Studio.Net 2008 ျဖစ္ပါတယ္ ခင္ဗ်ာ။
၁- ပထမဆံုး textbox ထဲက text ေတြကို string ေျပာင္းၿပီး string variable တစ္ခုထဲကို ထည္႔ပါမယ္။ ဒီ ဥပမာ မွာေတာ႔ sInput ထဲကို assignment operator (=) သံုးၿပီး ထည္႔လိုက္ပါမယ္။ sInput = txtInput.Text.ToString
၂- ေနာက္တဆင္႔က string ထဲက စာလံုး တစ္လံုး ေလ်ာ႔ဖို႔အတြက္ လိုတဲ႔ string ရဲ႕ စာလံုးအေရအတြက္ ကို ရွာထားဖို႔ပဲ ျဖစ္ပါတယ္။ အခုေလာေလာဆယ္ေတာ႔ len() function ကို အသံုးျပဳၿပီး integer variable တစ္ခုထဲကို ထည္႔သြင္း ထားပါတယ္။ iASize = Len(sInput)။ ေနာက္ပိုင္းမွာ အဲဒီလို function မ်ိဳးကို ကိုယ္တိုင္ ဘယ္လို ေရးမယ္ဆိုတာကို ရွင္းျပသြားပါမယ္။
၃- ေနာက္ဆံုး အဆင္႔မွာေတာ႔ Microsoft.VisualBasic.Left(,) function ကိုသံုးၿပီး မလိုခ်င္တဲ႔ ေနာက္ဆံုး စာလံုးကို ဖယ္ထုတ္ကာ textbox ေပၚမွာ ျပန္လည္ ေဖၚျပေပးမွာ ျဖစ္ပါတယ္။
၄- if Not Then End If ကိုသံုးထားရတာကေတာ႔ တကယ္လို႔ textbox ထဲမွာ စာရိုက္ထည္႔ထားတာမရွိရင္ ဘာမွ မလုပ္ဖို႔အတြက္ error မတက္ေအာင္ ႀကိဳတင္ စစ္ေဆးထားတာ ျဖစ္ပါတယ္။
ကုဒ္ဒင္း အျပည္႔အစံုကိုေတာ႔ ေအာက္မွာေဖၚျပေပးထားပါတယ္။
Private Sub btnBackSpace_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBackSpace.Click
Dim sInput As String
Dim iASize As Integer
If Not txtInput.Text = "" Then
sInput = txtInput.Text.ToString
iASize = Len(sInput)
txtInput.Text = Microsoft.VisualBasic.Left(sInput, iASize - 1)
End If
End Sub
အထက္က ကုဒ္ဒင္း မွာ ပါတဲ႔ ဖန္ရွင္ ေလးေတြကို အေသးစိတ္ရွင္းျပၿပီး ကိုယ္တိုင္ အသစ္ေရးျပပါ႔မယ္။
Len() function
String တစ္ခုရဲ႕ စာလံုးအေရအတြက္ကို ရွာေပးပါတယ္။ input argument အေနနဲ႔ string ရဲ႕ name ဒါမွ မဟုတ္ string တစ္ခုကို " " ခံၿပီး ထည္႔သြင္းေပးရပါမယ္။ ရလာတဲ႔ စာလံုးအေရအတြက္ကို integer variable တစ္ခုထဲကို = သံုးၿပီး ထည္႔ေပးရပါမယ္။
ဥပမာ- iArraySize = Len(sArrayName) (or) iArraySize = Len("http://www.engineer4myanmar.com")
အဲဒီဖန္ရွင္ေလးကိုပဲ ကၽြန္ေတာ္တို႔ ကိုယ္တိုင္ ျပန္ေရးၾကည္႔ရေအာင္။ သိပ္မခက္ပါဘူး။ For Each ကိုသံုးၿပီး string ထဲက စာလံုး တစ္လံုးခ်င္းစီကို ဆြဲထုတ္တိုင္း Counter variable ကို တစ္တိုးၿပီး ေရတြက္ သြားတာပါ။ အခု ဖန္ရွင္းမွာ အဲဒီလို ဆြဲထုတ္လိုက္တဲ႔ char တစ္လံုးခ်င္းစီကို သံုးျပ မထားေပမယ္႔ ေနာက္ဥပမာေတြမွာ လိုအပ္ရင္ ယူသံုးျပသြားပါ႔မယ္။
Private Function funArrayLength(ByVal sArray As String) As Integer
Dim iCount As Integer = 0
For Each cMyChar As Char In sArray
iCount = iCount + 1
Next
Return iCount
End Function
Microsoft.VisualBasic.Left()
ဒီဖန္ရွင္ကိုေတာ႔ string တစ္ခုထဲက ကိုယ္လိုခ်င္တဲ႔ စာလံုး အေရအတြက္ကို ထုတ္ႏုတ္ယူဖို႔ အသံုးျပဳပါတယ္။ ဘယ္ဘက္ကေနစၿပီး input argument ထဲ ထည္႔ေပးလိုက္တဲ႔ စာလံုး အေရအတြက္ အတိုင္း ထုတ္ေပးတာပါ။ Output string ကို = သံုးၿပီး ရယူေပးရပါတယ္။ အဲဒီ ဖန္ရွင္ကိုပဲ ကိုယ္တိုင္ ျပန္ေရးၾကရေအာင္..
Private Function funLeft(ByVal sArray As String, ByVal iIndex As Integer) As String
Dim sOutputString As String = ""
Dim iCount As Integer = 0
For Each cMyChar As Char In sArray
iCount = iCount + 1
If iCount <= iIndex Then
sOutputString = sOutputString & cMyChar
End If
Next
Return sOutputString
End Function
ဒီေတာ႔ ကိုယ္တိုင္ေရးထားတဲ႔ ဖန္ရွင္ေတြကို သံုးၿပီး ဒီကုဒ္ဒင္းေလးကို ေအာက္ပါအတိုင္း ျပင္ေရးလိုက္ပါ႔မယ္။
Private Sub btnBackSpace_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBackSpace.Click
Dim sInput As String
Dim sOutput As String
Dim iArraySize As Integer
If txtshow.Text <> "" Then
sInput = txtshow.Text.ToString
'iArraySize = Len(sInput)
iArraySize = funArrayLength(sInput)
'sOutput = Microsoft.VisualBasic.Left(sInput, iArraySize - 1)
sOutput = funLeft(sInput, iArraySize - 1)
txtshow.Text = sOutput
End If
End Sub
ဘာမဟုတ္တဲ႔ အေသးအဖြဲေလးေပမယ္႔ string manipulation ကို ေလ႔လာဖို႔အတြက္ အေျခခံ အျဖစ္ ေရးသားထားျခင္း ျဖစ္ပါတယ္။
--
http://www.engineer4myanmar.com
http://wikimyanmar.co.cc
http://www.ru-mm.org