0

大家,早安。

我有这个非常奇怪的问题。

这是我的代码片段。

    Dim apantisi_pou_edwse As String
    Dim objreader As New StreamReader(TEST_NAME)
    Dim Answer1 As String = Split(objreader.ReadToEnd(), vbCrLf)(1) & vbCrLf

     If test1.RadioButton1.Checked = True Then
                apantisi_pou_edwse = test1.RadioButton1.Text.ToString()

            ElseIf test1.RadioButton2.Checked = True Then
                apantisi_pou_edwse = test1.RadioButton2.Text.ToString()
            End If
    If apantisi_pou_edwse = Answer1 Then
                RichTextBox1.BackColor = Color.Green
                RichTextBox1.Text = "Right answer!"
            ElseIf apantisi_pou_edwse <> Answer1 Then
                RichTextBox1.BackColor = Color.Red
                RichTextBox1.Text = "Sorry, wrong anwser"
            End If

所以它的作用是从文本文件中读取一行并将其分配给字符串变量 Answer1。然后它获取相应单选按钮的 Text 属性并将其分配给字符串变量 apantisi_pou_edwse。最后,它检查是否 apantisi_pou_edwse = Aswer1。问题是,即使两者相等, if...then 语句也无法识别它们,因此始终移动到 elseif 部分。我错过了什么?非常感谢

编辑

If String.Compare(apantisi_pou_edwse, Answer1) = 0 Then
            RichTextBox1.BackColor = Color.Green
            RichTextBox1.Text = "Συγχαρητήρια απάντησες σωστά"
        Else
            RichTextBox1.BackColor = Color.Red
            RichTextBox1.Text = "Λυπάμαι απάντησες λάθος"
        End If

我用上面的那个改变了我的 if 语句,但它仍然不起作用:(

Edit2 感谢 Mortalus 和 Enigmativity 的回答!他们解决了问题

4

2 回答 2

1

尝试更改此行:

Dim Answer1 As String = Split(objreader.ReadToEnd(), vbCrLf)(1) & vbCrLf

对此:

Dim Answer1 As String = Split(objreader.ReadToEnd(), vbCrLf)(1)
于 2012-10-03T07:29:35.450 回答
1

您应该使用不同的方法来比较以下行中的字符串:

If apantisi_pou_edwse = Answer1 Then 

这一行比较了apantisi_pou_edwse变量Answer1的引用

尝试使用。

String.Compare(apantisi_pou_edwse, Answer1 )
于 2012-10-03T07:20:03.833 回答