1

这个私人子不断告诉我“属性字符:只读”。

我哪里出错了?StrWord 是一个字符串,例如'banana'。

我希望它会循环遍历单词,如果“猜测”(单个字母)与字符串(StrWord)中的任何字母匹配,它将在单词文本框中的相应字母中替换它。

所以刽子手,或多或少。

谢谢和问候,
卡梅伦。

Private Sub Lookup(ByVal Guess)
    Dim Count As Integer = 0
    For Each Character As Char In StrWord
        If Character = Guess Then
            txtResult.Text(Count) = Guess
        Else
            Count += 1
        End If
    Next
End Sub
4

2 回答 2

4

.NET 中的字符串是不可变的。这意味着您无法更改它们。相反,您需要创建一个新字符串并将其分配给 Text 属性。您会发现System.Text.StringBuilder该类也很有帮助,因为它是可变的,您可以使用该ToString方法将其转换为字符串。

尝试这样的事情:

Private Sub Lookup(ByVal Guess As Char)

    Dim temp as new StringBuilder(txtResult.Text)

    Dim Count As Integer = 0
    For Each Character As Char In StrWord
        If Character = Guess Then
            temp.Chars(Count) = Character
        Else
            Count += 1
        End If
    Next
    txtResult.Text = temp.ToString()

End Sub

或这个:

Private Sub Lookup(ByVal Guess As Char)

Dim temp as new StringBuilder()

Dim Count As Integer = 0
For Each Character As Char In StrWord
    If Character = Guess Then
        temp.Append(Character)
    Else
        temp.Append("*")
        Count += 1
    End If
Next
txtResult.Text = temp.ToString()

结束子

于 2013-01-22T13:32:55.267 回答
-1

您是否将文本框设置为只读以防止用户修改它?如果是这样,您可能需要将其从 ReadOnly 更改为进行更改,然后将其更改回 ReadOnly。

您也可以尝试以这种方式更改它:

txtResult.Text.Replace(Character, Guess)
于 2013-01-22T13:19:15.307 回答