2

次のコードがあります。

Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ListBox1.Items.Add("Celsius to Farenheit")
    ListBox1.Items.Add("Farenheit to Celsius")

End Sub

Private Sub ListBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
    ' Get the currently selected item in the list box. 
    Dim currentItem As String = ListBox1.SelectedItem.ToString()

    ' Get the currently selected index of the item in the list box.
    Dim currentIndex As Integer = ListBox1.FindString(currentItem)
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' calculate button
    If String.IsNullOrEmpty(TextBox1.Text) Then
        MsgBox("Please enter a temperature to convert!")
    ElseIf currentItem = "Celsius to Farenheit" Then
        'do celsius to farenheit conversion
    ElseIf currentItem = "Farenheit to Celsius" Then
        'do farenheit to celsius conversion
    Else
        MsgBox("Please select a conversion first!")
    End If
End Sub
End Class

ListBox1で特定の選択が行われた場合、Button1がクリックされたときにその特定の変換が実行されるようにチェックしようとしています。ただし、上記のコードは「currentItem が宣言されていません。保護レベルにアクセスできない可能性があります」というエラーをスローすることはできません。私はこれが何かに関係しているのではないかと疑っています

ListBox1_SelectedIndexChanged

プライベートサブですが、パブリックに変更しても影響はないようです。

誰かが私を正しい方向に向けることができますか?

ありがとう。

4

2 に答える 2

1

Karl Anderson のおかげで、次のコードを使用して問題を解決できました。

Public Class Form1
Dim currentItem As String
Dim currentIndex As Integer

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ListBox1.Items.Add("Celsius to Farenheit")
    ListBox1.Items.Add("Farenheit to Celsius")

End Sub

Private Sub ListBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
    ' Get the currently selected item in the list box. 
    currentItem = ListBox1.SelectedItem.ToString()

    ' Get the currently selected index of the item in the list box.
   currentIndex = ListBox1.FindString(currentItem)
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' calculate button
    If String.IsNullOrEmpty(TextBox1.Text) Then
        MsgBox("Please enter a temperature to convert!")
    ElseIf currentIndex = 0 Then
        Label2.Text = TextBox1.Text & " Celsius = " & (TextBox1.Text * 1.8) + 32 & " Farenheit"
    ElseIf currentIndex = 1 Then
        Label2.Text = TextBox1.Text & " Farenheit = " & (TextBox1.Text - 32) / 1.8 & " Celsius"
    Else
        MsgBox("Please select a conversion first!")
    End If
End Sub
End Class
于 2013-08-26T23:39:43.800 に答える