2016-11-11 5 views
0

Tagプロパティを使用してエラーをどのように知りたいですか? VB.Netにコードがありますが、C#に変換することはわかりません。タグプロパティを使用してエラーを表示するC#

シナリオ:textbox_qtyは整数のみを受け入れます。ユーザーが数字以外の文字を入力した場合は、Invalid CharactersというTagというプロパティが表示されます。

これはVB.Netで使用したコードです。 forにnullフィールドがある場合、これを使用します。

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#に変換せずにプロパティを表示できる別のコードはありますか?

ありがとうございました!

+0

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

その後、溶液を次のように「ValidField」を更新するために、次のようになります。それは、このような「ValidField」関数へのパラメータの一つであると仮定すると。その過程でどのような問題が発生しましたか? –

答えて

0

Information Classにチェックする価値があります。オブジェクトを検証する方法があります。これはVisualBasicクラスですが、.Net Frameworkの主な利点の1つであるC#でも使用できます。

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; 
} 

またExit Function Returnステートメントは必要ありませんした後、戻り値は自動的に関数を終了結果。

+0

サー! @fütemire私はエラーが「情報は現在のコンテキストではない」と言っています。どのような名前空間を使用する必要がありますか? –

+0

ありがとうございます@fütemire。申し訳ありませんが、私はあなたの申し訳ありませんに値するとは思わない。 –

+0

サー! @@fütemire私はエラーが発生しました。 'if(!Information.IsNumeric(ctl(i).Text)) { Error_Null.SetError(ctl(i)、ctl(i).tag); falseを返します。 } ' すべての' ctl'にはエラーがあり、 'メソッド名が期待されました 'と書かれています –

0

最初にthisコンバータを使用して、VBコードをC#に変換するか、またはその逆に変換できます。

次に「textbox_qty」変数がコード内でどこにあるか教えてください。私たちのコードを変換する時、あなたの試みを表示

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 
関連する問題