使用标签属性显示错误

本文关键字:显示 错误 属性 标签 | 更新日期: 2023-09-27 18:17:18

我想知道如何使用Tag属性出错?我有代码在VB。. Net,但我不知道如何将其转换为c#。

场景:textbox_qty只接受整数。如果用户键入非数字字符,则显示Tag属性,表示Invalid Characters

这是我在VB.Net中使用的代码。如果for有空字段,我使用这个
Private Function ValidField(ByVal ParamArray ctl() As Object) As Boolean
    For i As Integer = 0 To UBound(ctl)
        If ctl(i).Text = "" Then
            Error_reg.SetError(ctl(i), ctl(i).tag)
            Return False
            Exit Function
        End If
    Next
    Return True
End Function
    If ValidField(TextBox_userName, TextBox_password, TextBox_retypePassword, TextBox_lastName, TextBox_firstName, ComboxBox_group, ComboBox_question, TextBox_answer) = False Then
    Exit Sub

如果这段代码不工作?是否有另一个代码可以显示Tag属性错误而不转换我的VB。Net代码到c# ?

谢谢你的帮助!

使用标签属性显示错误

检查Information class可能是值得的,它有验证对象的方法。虽然它是一个VisualBasic类,但它仍然可以在c#中使用,这是。net框架的主要优点之一。

在Visual Basic中,你不需要为你的项目添加任何引用。

如果你想在c#中使用Information Class,请确保添加对Microsoft的引用。VisualBasic中,然后将using Microsoft.VisualBasic;添加到要添加以下代码的类或模块中。

您可以使用Information.IsNumeric方法来验证数字条目。

VB。Net代码…

Private Function ValidField(ByVal ParamArray ctl() As Object) As Boolean
    For i As Integer = 0 To UBound(ctl)
        Dim tB As TextBox = DirectCast(ctl(i),TextBox)
        If Not IsNumeric(tB.Text) Then
            Error_reg.SetError(tB, tB.Tag)
            Return False
        End If
    Next
    Return True
End Function

示例c#代码…

private bool ValidField(params object[] ctl)
{
    for (int i = 0; i <= Information.UBound(ctl); i++) {
        TextBox tB = (TextBox)ctl[i];
        if (!Information.IsNumeric(tB.Text)) {
            Error_reg.SetError(tB, tB.Tag);
            return false;
        }
    }
    return true;
}

也不需要Return语句后面的Exit Function, Return自动退出函数并返回结果。

首先,您可以使用此转换器将VB代码转换为c#代码,反之亦然。

第二,请告诉我们哪里是"textbox_qty"变量在代码?假设它是"ValidField"函数的参数之一,如下所示:

ValidField(TextBox_userName, TextBox_password, TextBox_retypePassword, TextBox_lastName, TextBox_firstName, ComboxBox_group, ComboBox_question, TextBox_answer, textbox_qty)

那么解决方案将是更新"ValidField"如下:

Private Function ValidField(ByVal ParamArray ctl() As Object) As Boolean
    For i As Integer = 0 To UBound(ctl)
        If ctl(i).Name = "textbox_qty" AndAlso Not IsNumeric(ctl(i).Text) Then
            Error_reg.SetError(ctl(i), ctl(i).tag)
            Return False
            Exit Function
        End If
    Next
    Return True
End Function