選擇2個單選按鈕和文本好吧,所以我寫一個轉換攝氏度開和華氏溫度的程序。默認情況下,我的計算按鈕被禁用,直到用戶輸入溫度並選擇相應溫度的單選按鈕以及正在轉換的溫度。我有很多問題試圖啓用計算按鈕。我不確定自從嵌套if語句在計算區域中不起作用以後該怎麼辦。以下是我迄今爲止:如何啓用Visual Basic中的計算按鈕時,我需要在文本框中
Option Strict On
Option Explicit On
Public Class FmMain
'Yes I understand that this program is very easy to break
Private Sub BtnCalc_Click(sender As Object, e As EventArgs) Handles BtnCalc.Click
Try
Dim num1 As Decimal
Dim num2 As Decimal
Dim Answer As Decimal
Dim Flag As Integer
Dim Flag2 As Integer
Dim T1 As String
'This is where I'm trying to enable the calculate button
If TxtNum1.Text <> "" Then
If RadC1.Checked Or RadF1.Checked Or RadK1.Checked Then
If RadC2.Checked Or RadF2.Checked Or RadK2.Checked Then
BtnCalc.Enabled = True
BtnCalc.Focus()
End If
End If
End If
'This block of code makes sure that the input that is entered is numerical and does not break the program.
If TxtNum1.Text <> "" Then 'I won't need this line once I can get the calculate button enabled and disabled at will
If IsNumeric(TxtNum1.Text) Then
If RadF1.Checked And RadC2.Checked Then
Flag = 1
ElseIf RadF1.Checked And RadK2.Checked Then
Flag = 2
ElseIf RadC1.Checked And RadF2.Checked Then
Flag = 3
ElseIf RadC1.Checked And RadK2.Checked Then
Flag = 4
ElseIf RadK1.Checked And RadF2.Checked Then
Flag = 5
Else
Flag = 6
End If
If RadF2.Checked Then
Flag2 = 1
ElseIf RadC2.Checked Then
Flag2 = 2
Else
Flag2 = 3
End If
Answer = ModCalc.Temperature(num1, Flag, num2)
T1 = ModCalc.Temp(Flag2)
MessageBox.Show("The Answer is: " & Answer.ToString & " " & T1 & ".", "This is a Message Box", MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
MessageBox.Show("Please enter a number", "Bad Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
Else
MessageBox.Show("Please enter a number", "Bad Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
Catch ex As Exception
End Try
End Sub
'This just ensures that the user can't click the same radio button on both sides
Private Sub RadF1_CheckedChanged(sender As Object, e As EventArgs) Handles RadF1.CheckedChanged
If RadF1.Checked Then
RadF2.Checked = False
RadF2.Enabled = False
RadC2.Enabled = True
RadK2.Enabled = True
End If
End Sub
Private Sub RadC1_CheckedChanged(sender As Object, e As EventArgs) Handles RadC1.CheckedChanged
If RadC1.Checked Then
RadC2.Checked = False
RadC2.Enabled = False
RadF2.Enabled = True
RadK2.Enabled = True
End If
End Sub
Private Sub RadK1_CheckedChanged(sender As Object, e As EventArgs) Handles RadK1.CheckedChanged
If RadK1.Checked Then
RadK2.Checked = False
RadK2.Enabled = False
RadF2.Enabled = True
RadC2.Enabled = True
End If
End Sub
End Class
您正嘗試啓用按鈕的onclick事件處理程序中的按鈕。這沒有任何意義。您應該移動邏輯來啓用單選按鈕的按鈕來檢查更改的事件,並且只有在檢查了正確的事件時才啓用按鈕。 – Tim