Nessuna descrizione
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

計算機.vb 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. Public Class 計算機
  2. Private Sub 計算機_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  3. 數值2_tb.Enabled = False : 數值1_tb.Enabled = False : 計算式_tb.Enabled = False
  4. Me.KeyPreview = True
  5. 數值2_tb.Text = "" : 數值1_tb.Text = "" : 計算式_tb.Text = "" : 結果_tb.Text = ""
  6. End Sub
  7. Private Sub 計算機_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
  8. If 計算機調 = "報價總表" Then
  9. If Val(PA30) > 0 Then : 數值2_tb.Text = PA30 : 等於_bt.PerformClick() : Else : PA30 = "" : End If
  10. Else : PA30 = "" : End If
  11. End Sub
  12. Private Sub Form_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
  13. Select Case e.KeyCode
  14. Case Keys.NumPad1 : Me.ActiveControl = b1_bt : b1_bt.PerformClick() : Me.ActiveControl = 等於_bt
  15. Case Keys.NumPad2 : Me.ActiveControl = b2_bt : b2_bt.PerformClick() : Me.ActiveControl = 等於_bt
  16. Case Keys.NumPad3 : Me.ActiveControl = b3_bt : b3_bt.PerformClick() : Me.ActiveControl = 等於_bt
  17. Case Keys.NumPad4 : Me.ActiveControl = b4_bt : b4_bt.PerformClick() : Me.ActiveControl = 等於_bt
  18. Case Keys.NumPad5 : Me.ActiveControl = b5_bt : b5_bt.PerformClick() : Me.ActiveControl = 等於_bt
  19. Case Keys.NumPad6 : Me.ActiveControl = b6_bt : b6_bt.PerformClick() : Me.ActiveControl = 等於_bt
  20. Case Keys.NumPad7 : Me.ActiveControl = b7_bt : b7_bt.PerformClick() : Me.ActiveControl = 等於_bt
  21. Case Keys.NumPad8 : Me.ActiveControl = b8_bt : b8_bt.PerformClick() : Me.ActiveControl = 等於_bt
  22. Case Keys.NumPad9 : Me.ActiveControl = b9_bt : b9_bt.PerformClick() : Me.ActiveControl = 等於_bt
  23. Case Keys.NumPad0 : Me.ActiveControl = b0_bt : b0_bt.PerformClick() : Me.ActiveControl = 等於_bt
  24. Case Keys.Decimal : Me.ActiveControl = 小數點_bt : 小數點_bt.PerformClick() : Me.ActiveControl = 等於_bt
  25. Case Keys.D1 : Me.ActiveControl = b1_bt : b1_bt.PerformClick() : Me.ActiveControl = 等於_bt
  26. Case Keys.D2 : Me.ActiveControl = b2_bt : b2_bt.PerformClick() : Me.ActiveControl = 等於_bt
  27. Case Keys.D3 : Me.ActiveControl = b3_bt : b3_bt.PerformClick() : Me.ActiveControl = 等於_bt
  28. Case Keys.D4 : Me.ActiveControl = b4_bt : b4_bt.PerformClick() : Me.ActiveControl = 等於_bt
  29. Case Keys.D5 : Me.ActiveControl = b5_bt : b5_bt.PerformClick() : Me.ActiveControl = 等於_bt
  30. Case Keys.D6 : Me.ActiveControl = b6_bt : b6_bt.PerformClick() : Me.ActiveControl = 等於_bt
  31. Case Keys.D7 : Me.ActiveControl = b7_bt : b7_bt.PerformClick() : Me.ActiveControl = 等於_bt
  32. Case Keys.D8 : Me.ActiveControl = b8_bt : b8_bt.PerformClick() : Me.ActiveControl = 等於_bt
  33. Case Keys.D9 : Me.ActiveControl = b9_bt : b9_bt.PerformClick() : Me.ActiveControl = 等於_bt
  34. Case Keys.D0 : Me.ActiveControl = b0_bt : b0_bt.PerformClick() : Me.ActiveControl = 等於_bt
  35. Case Keys.OemPeriod : Me.ActiveControl = 小數點_bt : 小數點_bt.PerformClick() : Me.ActiveControl = 等於_bt
  36. Case Keys.Delete : Me.ActiveControl = 倒退_bt : 倒退_bt.PerformClick() : Me.ActiveControl = 等於_bt
  37. Case Keys.Multiply : Me.ActiveControl = 乘_bt : 乘_bt.PerformClick() : Me.ActiveControl = 等於_bt
  38. Case Keys.Subtract : Me.ActiveControl = 減_bt : 減_bt.PerformClick() : Me.ActiveControl = 等於_bt
  39. Case Keys.OemMinus : Me.ActiveControl = 減_bt : 減_bt.PerformClick() : Me.ActiveControl = 等於_bt
  40. Case Keys.Add : Me.ActiveControl = 加_bt : 加_bt.PerformClick() : Me.ActiveControl = 等於_bt
  41. Case Keys.Oemplus : Me.ActiveControl = 加_bt : 加_bt.PerformClick() : Me.ActiveControl = 等於_bt
  42. Case Keys.Oem2 : Me.ActiveControl = 除_bt : 除_bt.PerformClick() : Me.ActiveControl = 等於_bt
  43. Case Keys.Divide : Me.ActiveControl = 除_bt : 除_bt.PerformClick() : Me.ActiveControl = 等於_bt
  44. Case Keys.Back : Me.ActiveControl = 倒退_bt : 倒退_bt.PerformClick() : Me.ActiveControl = 等於_bt
  45. Case Keys.Return : Me.ActiveControl = 倒退_bt : 倒退_bt.PerformClick() : Me.ActiveControl = 等於_bt
  46. End Select
  47. End Sub
  48. Private Sub B1_bt_Click(sender As Object, e As EventArgs) Handles b1_bt.Click
  49. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 1 : Else : 數值2_tb.Text = 1 : End If
  50. End Sub
  51. Private Sub B2_bt_Click(sender As Object, e As EventArgs) Handles b2_bt.Click
  52. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 2 : Else : 數值2_tb.Text = 2 : End If
  53. End Sub
  54. Private Sub B3_bt_Click(sender As Object, e As EventArgs) Handles b3_bt.Click
  55. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 3 : Else : 數值2_tb.Text = 3 : End If
  56. End Sub
  57. Private Sub B4_bt_Click(sender As Object, e As EventArgs) Handles b4_bt.Click
  58. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 4 : Else : 數值2_tb.Text = 4 : End If
  59. End Sub
  60. Private Sub B5_bt_Click(sender As Object, e As EventArgs) Handles b5_bt.Click
  61. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 5 : Else : 數值2_tb.Text = 5 : End If
  62. End Sub
  63. Private Sub B6_bt_Click(sender As Object, e As EventArgs) Handles b6_bt.Click
  64. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 6 : Else : 數值2_tb.Text = 6 : End If
  65. End Sub
  66. Private Sub B7_bt_Click(sender As Object, e As EventArgs) Handles b7_bt.Click
  67. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 7 : Else : 數值2_tb.Text = 7 : End If
  68. End Sub
  69. Private Sub B8_bt_Click(sender As Object, e As EventArgs) Handles b8_bt.Click
  70. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 8 : Else : 數值2_tb.Text = 8 : End If
  71. End Sub
  72. Private Sub B9_bt_Click(sender As Object, e As EventArgs) Handles b9_bt.Click
  73. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 9 : Else : 數值2_tb.Text = 9 : End If
  74. End Sub
  75. Private Sub B0_bt_Click(sender As Object, e As EventArgs) Handles b0_bt.Click
  76. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 0 : Else : 數值2_tb.Text = 0 : End If
  77. End Sub
  78. Private Sub 小數點_bt_Click(sender As Object, e As EventArgs) Handles 小數點_bt.Click
  79. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & "." : Else : 數值2_tb.Text = "0." : End If
  80. End Sub
  81. '----------------------------數字鍵盤---------------------------------------------------------------------------------------------------------------
  82. Private Sub 倒退_bt_Click(sender As Object, e As EventArgs) Handles 倒退_bt.Click
  83. Dim SS As Integer
  84. If 數值2_tb.Text <> "" Then : 數值2_tb.Text = Int(Val(數值2_tb.Text) / 10)
  85. ElseIf 數值2_tb.Text = "" And 數值1_tb.Text <> "" Then : SS = Len(數值1_tb.Text) : 數值1_tb.Text = Strings.Left(數值1_tb.Text, SS - 1)
  86. Else : 數值2_tb.Text = "" : End If
  87. End Sub
  88. Private Sub 除_bt_Click(sender As Object, e As EventArgs) Handles 除_bt.Click
  89. 等於_bt.PerformClick()
  90. If 數值2_tb.Text <> "" And 數值1_tb.Text = "" Then : 數值1_tb.Text = 數值2_tb.Text : 數值2_tb.Text = "" : End If
  91. If 數值2_tb.Text <> "" And 數值1_tb.Text <> "" Then : 數值1_tb.Text = Val(數值1_tb.Text) / Val(數值2_tb.Text) : 數值2_tb.Text = "" : End If
  92. 計算式_tb.Text = "/"
  93. End Sub
  94. Private Sub 乘_bt_Click(sender As Object, e As EventArgs) Handles 乘_bt.Click
  95. 等於_bt.PerformClick()
  96. If 數值2_tb.Text <> "" And 數值1_tb.Text = "" Then : 數值1_tb.Text = 數值2_tb.Text : 數值2_tb.Text = "" : End If
  97. If 數值2_tb.Text <> "" And 數值1_tb.Text <> "" Then : 數值1_tb.Text = Val(數值2_tb.Text) * Val(數值1_tb.Text) : 數值2_tb.Text = "" : End If
  98. 計算式_tb.Text = "X"
  99. End Sub
  100. Private Sub 加_bt_Click(sender As Object, e As EventArgs) Handles 加_bt.Click
  101. 等於_bt.PerformClick()
  102. If 數值2_tb.Text <> "" And 數值1_tb.Text = "" Then : 數值1_tb.Text = 數值2_tb.Text : 數值2_tb.Text = "" : End If
  103. If 數值2_tb.Text <> "" And 數值1_tb.Text <> "" Then : 數值1_tb.Text = Val(數值2_tb.Text) + Val(數值1_tb.Text) : 數值2_tb.Text = "" : End If
  104. 計算式_tb.Text = "+"
  105. End Sub
  106. Private Sub 減_bt_Click(sender As Object, e As EventArgs) Handles 減_bt.Click
  107. 等於_bt.PerformClick()
  108. If 數值2_tb.Text <> "" And 數值1_tb.Text = "" Then : 數值1_tb.Text = 數值2_tb.Text : 數值2_tb.Text = "" : End If
  109. If 數值2_tb.Text <> "" And 數值1_tb.Text <> "" Then : 數值1_tb.Text = Val(數值1_tb.Text) - Val(數值2_tb.Text) : 數值2_tb.Text = "" : End If
  110. 計算式_tb.Text = "-"
  111. End Sub
  112. Private Sub 清除_bt_Click(sender As Object, e As EventArgs) Handles 清除_bt.Click
  113. 數值2_tb.Text = "" : 數值1_tb.Text = "" : 計算式_tb.Text = "" : 結果_tb.Text = ""
  114. End Sub
  115. Private Sub 數值1_tb_TextChanged(sender As Object, e As EventArgs) Handles 數值1_tb.TextChanged
  116. 結果_tb.Text = 數值1_tb.Text
  117. If 數值1_tb.Text = "" Then : Else
  118. If 數值1_tb.Text - Int(數值1_tb.Text) <> 0 Then : 結果_tb.Text = Format(Val(結果_tb.Text), "#,##0.0000")
  119. Else : 結果_tb.Text = Format(Val(結果_tb.Text), "#,##0") : End If
  120. End If
  121. If Val(數值1_tb.Text) > 9.99973000350998E+85 Then
  122. If 系統語言 = "繁體中文" Then : MsgBox("EFFORT錯誤!結果過大,請重新點擊AC來重新啟動!!")
  123. Else : MsgBox("kesalahan UPAYA! Hasilnya terlalu besar, silakan klik AC lagi untuk restart!!") : End If : End If
  124. End Sub
  125. Private Sub 計算結果()
  126. If 數值2_tb.Text <> "" And 數值1_tb.Text <> "" Then
  127. If 計算式_tb.Text = "X" Then : 數值1_tb.Text = Val(數值2_tb.Text) * Val(數值1_tb.Text) : 數值2_tb.Text = "" : End If
  128. If 計算式_tb.Text = "/" Then : 數值1_tb.Text = Val(數值1_tb.Text) / Val(數值2_tb.Text) : 數值2_tb.Text = "" : End If
  129. If 計算式_tb.Text = "+" Then : 數值1_tb.Text = Val(數值2_tb.Text) + Val(數值1_tb.Text) : 數值2_tb.Text = "" : End If
  130. If 計算式_tb.Text = "-" Then : 數值1_tb.Text = Val(數值1_tb.Text) - Val(數值2_tb.Text) : 數值2_tb.Text = "" : End If
  131. ElseIf 數值2_tb.Text <> "" And 數值1_tb.Text = "" Then
  132. 結果_tb.Text = 數值2_tb.Text
  133. Else : End If
  134. End Sub
  135. Private Sub 等於_bt_Click(sender As Object, e As EventArgs) Handles 等於_bt.Click
  136. 計算結果()
  137. End Sub
  138. Private Sub 資料寫入_bt_Click(sender As Object, e As EventArgs) Handles 資料寫入_bt.Click
  139. 計算結果()
  140. If 結果_tb.Text = "" Then
  141. If 系統語言 = "繁體中文" Then : MsgBox("沒有資料可以帶入!!") : Else : MsgBox("Tidak ada data untuk dibawa!!") : End If
  142. Else
  143. PA30 = CInt(結果_tb.Text) : Me.Close()
  144. End If
  145. End Sub
  146. End Class