VB實戰演練2─溫度換算程式
這回要來寫一個溫度換算的程式
這次的難度可是比上次要大大加深喔!
圖片預覽:
程式碼:
Private Sub Command1_Click(Index As Integer)
If Text1.Text = “” Then
MsgBox “請輸入攝氏數值”, 16, “攝氏”
Exit Sub
End If
C = Text1.Text
Text2.Text = 9 / 5 * Val(C) + 32
Text3.Text = Val(C) + 273
End SubPrivate Sub Command2_Click(Index As Integer)
If Text2.Text = “” Then
MsgBox “請輸入華氏數值”, 16, “華氏”
Exit Sub
End If
F = Text2.Text
Text1.Text = (Val(F) – 32) * (5 / 9)
Text3.Text = Val(Text1.Text) + 273
End SubPrivate Sub Command3_Click(Index As Integer)
If Text3.Text = “” Then
MsgBox “請輸入開氏數值”, 16, “開氏”
Exit Sub
End If
K = Text3.Text
Text1.Text = Val(K) – 273
Text2.Text = Val(Text1.Text) * (9 / 5) + 32
End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii >= 48 And KeyAscii <= 57 Then Exit Sub
If KeyAscii = 46 Then Exit Sub
If KeyAscii = 8 Then Exit Sub
KeyAscii = 0
End SubPrivate Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii >= 48 And KeyAscii <= 57 Then Exit Sub
If KeyAscii = 46 Then Exit Sub
If KeyAscii = 8 Then Exit Sub
KeyAscii = 0
End SubPrivate Sub Text3_KeyPress(KeyAscii As Integer)
If KeyAscii >= 48 And KeyAscii <= 57 Then Exit Sub
If KeyAscii = 46 Then Exit Sub
If KeyAscii = 8 Then Exit Sub
KeyAscii = 0
End Sub
佈置元件
1.佈置三個Label元件(1~3)由左而右,分別命名(Caption)
2.佈置三個text元件(1~3)由左而右,分別清空text欄位
3.佈置三個Command元件(1~3)由左而右,分別命名(Caption)
4.再佈置一個Label元件(4),打幾個字來美化你的表單
5.稍微設定一下表單屬性
完成後如下圖:
撰寫程式碼
一、讓text只能輸入數字、小數點(text)
將所有的text元件的KeyPress程序都撰寫以下程式碼:
If KeyAscii >= 48 And KeyAscii <= 57 Then Exit Sub
If KeyAscii = 46 Then Exit Sub
If KeyAscii = 8 Then Exit Sub
KeyAscii = 0
If KeyAscii >= 48 And KeyAscii <= 57 Then Exit Sub
如果鍵入的按鍵碼大於等於48或小於等於57的話就不再執行KeyPress程序
0的按鍵碼為48 9的按鍵碼為57
所以只能輸入0~9
If KeyAscii = 46 Then Exit Sub
如果鍵入的按鍵碼等於46的話就不再執行KeyPress程序
按鍵碼46就是”.” 小數點
所以可以輸入小數點
If KeyAscii = 8 Then Exit Sub
如果鍵入的按鍵碼等於8的話就不再執行KeyPress程序
按鍵碼8就是 鍵盤的”Backspace”鍵,能消去數字
所以可以使用”Backspace”鍵
KeyAscii = 0
KeyAscii = 0 就代表不做任何鍵入的動作
如果輸入的鍵都不符合以上的條件的話,那就會執行此KeyPress程序
也就是輸入的鍵將會無效化
二、攝氏換算(Command1)
點擊兩下Command1按鈕開始撰寫程式碼
If Text1.Text = “” Then
MsgBox “請輸入攝氏數值”, 16, “攝氏”
Exit Sub
End If
如果Text1沒有輸入任何東西的話就出現Msgbox彈出式訊息視窗
然後不再執行敘述(End Sub)
C = Text1.Text
將Text1輸入的內容導入C(攝氏)變數中
Text2.Text = 9 / 5 * Val(C) + 32
Text2出現的數字即為華氏溫度
攝氏換成華氏的公式是
華氏 = 9/5 * 攝氏 + 32
所以 Text2.Text = 9 / 5 * Val(C) + 32
Val是將C 也就是Text1.Text數值化,這樣計算才不會出錯
Text3.Text = Val(C) + 273
Text3出現的數字即為開氏溫度
攝氏換成開氏的公式是
華氏 = 攝氏 + 273
所以 Text3.Text = Val(C) + 273
三、華氏換算(Command2)
點擊兩下Command2按鈕開始撰寫程式碼
If Text2.Text = “” Then
MsgBox “請輸入華氏數值”, 16, “華氏”
Exit Sub
End If
如果Text2沒有輸入任何東西的話就出現Msgbox彈出式訊息視窗
然後不再執行敘述(End Sub)
F = Text2.Text
將Text2輸入的內容導入F(華氏)變數中
Text1.Text = (Val(F) – 32) * (5 / 9)
Text1出現的數字即為攝氏溫度
華氏換成攝氏的公式是
攝氏 = (華氏-32) * (5/9)
所以 Text1.Text = (Val(F) – 32) * (5 / 9)
Text3.Text = Val(Text1.Text) + 273
Text3出現的數字即為開氏溫度
要換成開氏拿攝氏來換會比較快
所以我們輸入
Text3.Text = Val(Text1.Text) + 273
四、開氏換算(Command3)
點擊兩下Command3按鈕開始撰寫程式碼
If Text3.Text = “” Then
MsgBox “請輸入開氏數值”, 16, “開氏”
Exit Sub
End If
如果Text3沒有輸入任何東西的話就出現Msgbox彈出式訊息視窗
然後不再執行敘述(End Sub)
K = Text3.Text
將Text3輸入的內容導入K(開氏)變數中
Text1.Text = Val(K) – 273
Text1出現的數字即為攝氏溫度
開氏換成攝氏的公式是
攝氏 = 開氏 – 273
所以 Text1.Text = Val(K) – 273
Text2.Text = Val(Text1.Text) * (9 / 5) + 32
Text2出現的數字即為華氏溫度
要換成華氏拿攝氏來換會比較快
所以我們輸入
Text2.Text = Val(Text1.Text) * (9 / 5) + 32
.
有BUG!
不知道各位有沒有發現,照這種方式寫出來的程式Text內並不能輸入負值(-)
其實只要在text的KeyPress程序再多寫一行程式碼就好了
給各位想想看吧!
.
.
答:只要在text的KeyPress程序中撰寫以下程式碼就好了
If KeyAscii = 45 Then Exit Sub
按鍵碼45就是”-” 負號