暫無描述
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 8.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. Public Class 計算機
  2. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  3. 計算前_tb.Enabled = False : 計算後_tb.Enabled = False : 計算式_tb.Enabled = False
  4. Me.KeyPreview = True
  5. End Sub
  6. Private Sub Form_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
  7. Select Case e.KeyCode
  8. Case Keys.NumPad1 : 一_bt.PerformClick() : Case Keys.NumPad2 : 二_bt.PerformClick() : Case Keys.NumPad3 : 三_bt.PerformClick() : Case Keys.NumPad4 : 四_bt.PerformClick()
  9. Case Keys.NumPad5 : 五_bt.PerformClick() : Case Keys.NumPad6 : 六_bt.PerformClick() : Case Keys.NumPad7 : 七_bt.PerformClick() : Case Keys.NumPad8 : 八_bt.PerformClick()
  10. Case Keys.NumPad9 : 九_bt.PerformClick() : Case Keys.NumPad0 : 零_bt.PerformClick() : Case Keys.Decimal : 小數點_bt.PerformClick() : Case Keys.D1 : 一_bt.PerformClick()
  11. Case Keys.D2 : 二_bt.PerformClick() : Case Keys.D3 : 三_bt.PerformClick() : Case Keys.D4 : 四_bt.PerformClick() : Case Keys.D5 : 五_bt.PerformClick()
  12. Case Keys.D6 : 六_bt.PerformClick() : Case Keys.D7 : 七_bt.PerformClick() : Case Keys.D8 : 八_bt.PerformClick() : Case Keys.D9 : 九_bt.PerformClick()
  13. Case Keys.D0 : 零_bt.PerformClick() : Case Keys.OemPeriod : 小數點_bt.PerformClick() : Case Keys.Delete : 消除_bt.PerformClick() : Case Keys.Multiply : 乘_bt.PerformClick()
  14. Case Keys.Subtract : 減_bt.PerformClick() : Case Keys.OemMinus : 減_bt.PerformClick() : Case Keys.Add : 加_bt.PerformClick() : Case Keys.Oemplus : 加_bt.PerformClick()
  15. Case Keys.Oem2 : 除_bt.PerformClick() : Case Keys.Divide : 除_bt.PerformClick()
  16. End Select
  17. End Sub
  18. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles 一_bt.Click
  19. If 計算前_tb.Text <> "" Then
  20. 計算前_tb.Text = 計算前_tb.Text & 1
  21. Else
  22. 計算前_tb.Text = 1
  23. End If
  24. End Sub
  25. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles 二_bt.Click
  26. If 計算前_tb.Text <> "" Then
  27. 計算前_tb.Text = 計算前_tb.Text & 2
  28. Else
  29. 計算前_tb.Text = 2
  30. End If
  31. End Sub
  32. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles 三_bt.Click
  33. If 計算前_tb.Text <> "" Then
  34. 計算前_tb.Text = 計算前_tb.Text & 3
  35. Else
  36. 計算前_tb.Text = 3
  37. End If
  38. End Sub
  39. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles 四_bt.Click
  40. If 計算前_tb.Text <> "" Then
  41. 計算前_tb.Text = 計算前_tb.Text & 4
  42. Else
  43. 計算前_tb.Text = 4
  44. End If
  45. End Sub
  46. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles 五_bt.Click
  47. If 計算前_tb.Text <> "" Then
  48. 計算前_tb.Text = 計算前_tb.Text & 5
  49. Else
  50. 計算前_tb.Text = 5
  51. End If
  52. End Sub
  53. Private Sub Button6_Click(sender As Object, e As EventArgs) Handles 六_bt.Click
  54. If 計算前_tb.Text <> "" Then
  55. 計算前_tb.Text = 計算前_tb.Text & 6
  56. Else
  57. 計算前_tb.Text = 6
  58. End If
  59. End Sub
  60. Private Sub Button7_Click(sender As Object, e As EventArgs) Handles 七_bt.Click
  61. If 計算前_tb.Text <> "" Then
  62. 計算前_tb.Text = 計算前_tb.Text & 7
  63. Else
  64. 計算前_tb.Text = 7
  65. End If
  66. End Sub
  67. Private Sub Button8_Click(sender As Object, e As EventArgs) Handles 八_bt.Click
  68. If 計算前_tb.Text <> "" Then
  69. 計算前_tb.Text = 計算前_tb.Text & 8
  70. Else
  71. 計算前_tb.Text = 8
  72. End If
  73. End Sub
  74. Private Sub Button9_Click(sender As Object, e As EventArgs) Handles 九_bt.Click
  75. If 計算前_tb.Text <> "" Then
  76. 計算前_tb.Text = 計算前_tb.Text & 9
  77. Else
  78. 計算前_tb.Text = 9
  79. End If
  80. End Sub
  81. Private Sub Button10_Click(sender As Object, e As EventArgs) Handles 零_bt.Click
  82. If 計算前_tb.Text <> "" Then
  83. 計算前_tb.Text = 計算前_tb.Text & 0
  84. Else
  85. 計算前_tb.Text = 0
  86. End If
  87. End Sub
  88. Private Sub Button12_Click(sender As Object, e As EventArgs) Handles 小數點_bt.Click
  89. If 計算前_tb.Text <> "" Then
  90. 計算前_tb.Text = 計算前_tb.Text & "."
  91. Else
  92. 計算前_tb.Text = "0."
  93. End If
  94. End Sub
  95. '----------------------------數字鍵盤---------------------------------------------------------------------------------------------------------------
  96. Private Sub Button11_Click(sender As Object, e As EventArgs) Handles 消除_bt.Click
  97. Dim SS As Integer
  98. If 計算前_tb.Text <> "" Then
  99. 計算前_tb.Text = Int(Val(計算前_tb.Text) / 10)
  100. ElseIf 計算前_tb.Text = "" And 計算後_tb.Text <> "" Then
  101. SS = Len(計算後_tb.Text)
  102. 計算後_tb.Text = Strings.Left(計算後_tb.Text, SS - 1)
  103. Else
  104. 計算前_tb.Text = ""
  105. End If
  106. End Sub
  107. Private Sub Button16_Click(sender As Object, e As EventArgs) Handles 除_bt.Click
  108. 等於_bt.PerformClick()
  109. If 計算前_tb.Text <> "" And 計算後_tb.Text = "" Then
  110. 計算後_tb.Text = 計算前_tb.Text
  111. 計算前_tb.Text = ""
  112. End If
  113. If 計算前_tb.Text <> "" And 計算後_tb.Text <> "" Then
  114. 計算後_tb.Text = Val(計算後_tb.Text) / Val(計算前_tb.Text)
  115. 計算前_tb.Text = ""
  116. End If
  117. 計算式_tb.Text = "/"
  118. End Sub
  119. Private Sub Button15_Click(sender As Object, e As EventArgs) Handles 乘_bt.Click
  120. 等於_bt.PerformClick()
  121. If 計算前_tb.Text <> "" And 計算後_tb.Text = "" Then
  122. 計算後_tb.Text = 計算前_tb.Text
  123. 計算前_tb.Text = ""
  124. End If
  125. If 計算前_tb.Text <> "" And 計算後_tb.Text <> "" Then
  126. 計算後_tb.Text = Val(計算前_tb.Text) * Val(計算後_tb.Text)
  127. 計算前_tb.Text = ""
  128. End If
  129. 計算式_tb.Text = "X"
  130. End Sub
  131. Private Sub Button13_Click(sender As Object, e As EventArgs) Handles 加_bt.Click
  132. 等於_bt.PerformClick()
  133. If 計算前_tb.Text <> "" And 計算後_tb.Text = "" Then
  134. 計算後_tb.Text = 計算前_tb.Text
  135. 計算前_tb.Text = ""
  136. End If
  137. If 計算前_tb.Text <> "" And 計算後_tb.Text <> "" Then
  138. 計算後_tb.Text = Val(計算前_tb.Text) + Val(計算後_tb.Text)
  139. 計算前_tb.Text = ""
  140. End If
  141. 計算式_tb.Text = "+"
  142. End Sub
  143. Private Sub Button14_Click(sender As Object, e As EventArgs) Handles 減_bt.Click
  144. 等於_bt.PerformClick()
  145. If 計算前_tb.Text <> "" And 計算後_tb.Text = "" Then
  146. 計算後_tb.Text = 計算前_tb.Text
  147. 計算前_tb.Text = ""
  148. End If
  149. If 計算前_tb.Text <> "" And 計算後_tb.Text <> "" Then
  150. 計算後_tb.Text = Val(計算後_tb.Text) - Val(計算前_tb.Text)
  151. 計算前_tb.Text = ""
  152. End If
  153. 計算式_tb.Text = "-"
  154. End Sub
  155. Private Sub Button17_Click(sender As Object, e As EventArgs) Handles 清空_bt.Click
  156. 計算前_tb.Text = "" : 計算後_tb.Text = "" : 計算式_tb.Text = "" : 答案_tb.Text = ""
  157. End Sub
  158. Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles 計算後_tb.TextChanged
  159. 答案_tb.Text = 計算後_tb.Text
  160. If 計算後_tb.Text = "" Then : Else
  161. If 計算後_tb.Text - Int(計算後_tb.Text) <> 0 Then
  162. 答案_tb.Text = Format(Val(答案_tb.Text), "#,##0.0000")
  163. Else
  164. 答案_tb.Text = Format(Val(答案_tb.Text), "#,##0")
  165. End If
  166. End If
  167. If Val(計算後_tb.Text) > 9.99973000350998E+85 Then
  168. MsgBox("EFFORT错误!结果过大请点击AC重新启动!!!")
  169. End If
  170. End Sub
  171. Private Sub Button18_Click(sender As Object, e As EventArgs) Handles 等於_bt.Click
  172. If 計算前_tb.Text <> "" And 計算後_tb.Text <> "" Then
  173. If 計算式_tb.Text = "X" Then
  174. 計算後_tb.Text = Val(計算前_tb.Text) * Val(計算後_tb.Text) : 計算前_tb.Text = ""
  175. End If
  176. If 計算式_tb.Text = "/" Then
  177. 計算後_tb.Text = Val(計算後_tb.Text) / Val(計算前_tb.Text) : 計算前_tb.Text = ""
  178. End If
  179. If 計算式_tb.Text = "+" Then
  180. 計算後_tb.Text = Val(計算前_tb.Text) + Val(計算後_tb.Text) : 計算前_tb.Text = ""
  181. End If
  182. If 計算式_tb.Text = "-" Then
  183. 計算後_tb.Text = Val(計算後_tb.Text) - Val(計算前_tb.Text) : 計算前_tb.Text = ""
  184. End If
  185. Else
  186. End If
  187. End Sub
  188. End Class