如何从标签中删除特定字符串

问题描述 投票:2回答:2

我试图删除特定串出一个标签。标签是假设,而输入是无效的打印错误消息,只要用户改变文本框中输入一个数字,错误消息应该消失特定输入。

以下是我试过到目前为止,但“ - =”如我所料不工作。

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
vb.net winforms
2个回答
1
投票

当应用于两个Strings的+符不串联。它附加在操作员的右手侧对操作人员的左侧的字符串的字符串。

(技术上讲,它会创建一个代表左手和右手字符串的连接,因为字符串.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

1
投票

有一些内置的事情,可用于验证用户输入。这仅仅是一些信息,我保存在主题。易于使用。

验证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
© www.soinside.com 2019 - 2024. All rights reserved.