2

コンボボックスの値から無効なキャスト式を取り除き、式に収まるようにするにはどうすればよいexamgradeですか?

MSDNなどで調べて解決しようとしましたが、わかりませんでした。使ってみExamgrade = ().ToStringましたがダメでした。

皆さんが私を正しい方向に向けてくれることを願っています。参考までに、これは私の最初の実際のプログラムです。C# で 1 回作成することに成功しましたが、ソース ファイルを削除したので、これは Visual Basic であり、ここまでは非常に簡単に作成できます。

アスタリスクは問題の行を示します

Public Class Calculator
Dim quarter3 As Integer
Dim quarter4 As Integer
Dim desiredgrade As String
Dim examgrade As String

 Private Sub Button1_Click(ByVal sender As System.Object, _
 ByVal e As System.EventArgs) Handles Button1.Click
    quarter3 = TextBox1.Text
    quarter4 = TextBox2.Text
    desiredgrade = ComboBox1.Text
    ****examgrade = ((desiredgrade - (quarter3 * 0.4) - _
    (quarter4 * 0.4)) / 0.2)****

    If examgrade > 100 Then
        Label5.Text = examgrade + " YOLO"
    ElseIf examgrade < 0 Then
        Label5.Text = "Impossible"
    Else
        Label5.Text = examgrade
    End If
End Sub

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender _
As System.Object, ByVal e As System.EventArgs) Handles _
ComboBox1.SelectedIndexChanged
    Dim A As Integer
    Dim B As Integer
    Dim C As Integer
    Dim D As Integer
    A = 90
    B = 80
    C = 70
    D = 60
    ComboBox1.EndUpdate()
End Sub
End Class
4

2 に答える 2

2

desiredgrade文字列です

examgrade = ((Double.Parse(desiredgrade) - (quarter3 * 0.4) - _
            (quarter4 * 0.4)) / 0.2).ToString()

を使用してDoubleいます。必要に応じて使用することもできますInteger

examgrade = ((Integer.Parse(desiredgrade) - (quarter3 * 0.4) - _
            (quarter4 * 0.4)) / 0.2).ToString()
于 2012-05-29T16:44:50.973 に答える
1

試験成績を文字列にする特別な理由がない限り、次のことを試してください。

Dim examgrade as Integer

examgrade = ((CInt(desiredgrade) - (quarter3 * 0.4) - _
(quarter4 * 0.4)) / 0.2)

VB は、examgrade をラベルに割り当てると、自動的に文字列に変換します。

于 2012-05-29T16:49:54.377 に答える