我试图删除特定串出一个标签。标签是假设,而输入是无效的打印错误消息,只要用户改变文本框中输入一个数字,错误消息应该消失特定输入。
以下是我试过到目前为止,但“ - =”如我所料不工作。
Sub errorOutput(toggleError As Boolean, courseNumber As Integer)
Dim err(6) As String
err(courseNumber) = "please ensure that what you input in Course " + courseNumber.ToString + " is a number between 0 and 100"
If toggleError = True Then
lblError.Text += err(courseNumber)
Else
lblError.Text -= err(courseNumber)
End If
End Sub
当应用于两个String
s的+
符不串联。它附加在操作员的右手侧对操作人员的左侧的字符串的字符串。
(技术上讲,它会创建一个代表左手和右手字符串的连接,因为字符串.NET是不可变的新String
对象,但是这是一个技术细节,你可能不关心。)
的操作者+=
称为化合物赋值运算符。它融合在一起修改值的运算符(在这种情况下,+
)与赋值运算符(=
),这样就可以同时获得两者。
好了,你知道这是如何工作了。您使用+=
,并且可以追加两个字符串,并且一切都很好。
因此,通过类比的方式,尝试-=
。等待......会发生什么?是什么意思减去两个字符串?减去两个数字,嗯,这非常有意义。但是你如何减去一个字符串?
这不是很明显会执行什么操作,所以减法运算符不会做String
对象的东西。它没有被定义的,因为它的语义是不明确的。仅级联被定义,使用操作者+
(还有&
操作者)。
如果你需要“删除”的字符串的一部分,你将不得不写更多的代码,使用一个或多个the methods provided by the String
class的拼写出你希望发生什么操作。例如,你可以使用String.Replace
method用另一个字符串(甚至一个空字符串),以取代一个字符串的所有实例:
Dim message As String = "My favorite color is yellow."
message = message.Replace("yellow", "blue")
但是,在这种情况下,你可能只是想先清除Label控件,然后只在错误信息补充。实际上,这就是Ry- suggested in a comment;例如。:
Sub errorOutput(toggleError As Boolean, courseNumber As Integer)
lblError.Text = String.Empty
Dim err(6) As String
err(courseNumber) = "please ensure that what you input in Course " + courseNumber.ToString + " is a number between 0 and 100"
If toggleError = True Then
lblError.Text += err(courseNumber)
End If
End Sub
有一些内置的事情,可用于验证用户输入。这仅仅是一些信息,我保存在主题。易于使用。
验证ErrorProvider控件
Private err As New ErrorProvider()
在设计视图>组件 - 或添加到您的形式从工具箱
.SetError(Control, “Error Message”)
Control.Validating
Private Sub TextBox1_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
If TextBox1.Text = "" Then
e.Cancel = True
err.SetError(TextBox1, "This text box cannot be blank.")
Else
err.Clear()
End If
End Sub