2013-01-11 3 views
0

Je veux vérifier les contrôles dans mon formulaire est vide ou pas ... J'ai un long code pour cela. Je donne le code ci-dessous.Vérification des contrôles vides dans VB.NET

Public totflag As Boolean 
Private Sub BTNSAVE_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BTNSAVE.Click 
    CheckMyControls() 
    If totflag = False Then 
     MessageBox.Show("Give Compleate Data!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning) 
     coloring() 
    ElseIf totflag = True Then 
     MessageBox.Show("Success", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information) 
    End If 
End Sub 
Public Sub coloring() 
    Dim txt, cmb, mtxt, rtxt As Control 
    For Each txt In EMPGBDATA.Controls 
     If TypeOf txt Is TextBox Then 
      If txt.Text = "" Then 
       txt.BackColor = Color.Red 
      End If 
     End If 
    Next 
    For Each cmb In EMPGBDATA.Controls 
     If TypeOf cmb Is ComboBox Then 
      If cmb.Text = "Select" Then 
       cmb.BackColor = Color.Red 
      End If 
     End If 
    Next 
    For Each mtxt In EMPGBDATA.Controls 
     If TypeOf mtxt Is MaskedTextBox Then 
      If mtxt.Text = "" AndAlso mtxt.Name <> "MTXTPFESI" Then 
       mtxt.BackColor = Color.Red 
      End If 
     End If 
    Next 
    For Each rtxt In EMPGBDATA.Controls 
     If TypeOf rtxt Is RichTextBox Then 
      If rtxt.Text = "" Then 
       rtxt.BackColor = Color.Red 
      End If 
     End If 
    Next 

End Sub 
Public Function CheckMyControls() As Boolean 
    Dim txt, cmb, mtxt, rtxt As Control 
    Dim flagtxt, flagcmb, flagmtxt, flagrtxt As Boolean 
    flagtxt = False 
    For Each txt In EMPGBDATA.Controls 
     If TypeOf txt Is TextBox Then 
      If txt.Text = "" Then 
       flagtxt = True 
      End If 
     End If 
    Next 
    flagcmb = False 
    For Each cmb In EMPGBDATA.Controls 
     If TypeOf cmb Is ComboBox Then 
      If cmb.Text = "Select" Then 
       flagcmb = True 
      End If 
     End If 
    Next 
    flagmtxt = False 
    For Each mtxt In EMPGBDATA.Controls 
     If TypeOf mtxt Is MaskedTextBox Then 
      If mtxt.Text = "" AndAlso mtxt.Name <> "MTXTPFESI" Then 
       flagmtxt = True 
      End If 
     End If 
    Next 
    flagrtxt = False 
    For Each rtxt In EMPGBDATA.Controls 
     If TypeOf rtxt Is RichTextBox Then 
      If rtxt.Text = "" Then 
       flagrtxt = True 
      End If 
     End If 
    Next 
    If flagtxt = True Or flagcmb = True Or flagmtxt = True Or flagrtxt = True Then 
     totflag = False 
    Else 
     totflag = True 
    End If 
    Return totflag 
End Function 

En fait, je ne veux pas vérifier une zone de texte PFESI. Si c'est vide ou non. Ceci est une zone de texte masquée. Mon problème est quand j'appuie sur le bouton soumettre avec tous les contrôles ont des données, il montre la boîte de message "Donner des données complètes!". Les contrôles sans données montrent également le même message. S'il vous plaît essayez de vérifier le code et donnez-moi une solution.

Répondre

0

Vous essayez de le faire trop compliqué. Je ne suis pas en face de l'ordinateur alors peut-être le code contient des erreurs mineures:

If CheckMyControls() = False Then 
     MessageBox.Show("Give Compleate Data!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning) 
     coloring() 
    Else 
     MessageBox.Show("Success", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information) 
    End If 

End Sub 

Public Sub coloring() 
    For Each cntrl In Me.Controls 
     Select Case cntrl.GetType 
      Case GetType(ComboBox) 
       If cntrl.Text = "Select" Then 
        cntrl.BackColor = Color.Red 
        Exit For 
       End If 
      Case GetType(MaskedTextBox) 
       If cntrl.Text = "" AndAlso cntrl.Name <> "MTXTPFESI" Then 
        cntrl.BackColor = Color.Red 
       End If 
      Case Else 
       If cntrl.Text = "" Then 
        cntrl.BackColor = Color.Red 
       End If 

     End Select 
    Next 

End Sub 

Public Function CheckMyControls() As Boolean 
    Dim bEmptyControlFlag As Boolean 
    For Each cntrl In Me.Controls 
     Select Case cntrl.GetType 
      Case GetType(ComboBox) 
       If cntrl.Text = "Select" Then 
        bEmptyControlFlag = True 
        Exit For 
       End If 
      Case Else 
       If cntrl.Text = "" Then 
        bEmptyControlFlag = True 
       End If 

     End Select 
    Next 

    Return Not bEmptyControlFlag 
End Function 
+0

j'ajouter une partie d'autre avec tous les vérifier dans mon code .... Il fonctionne très bien .... Merci pour vous rejouer .. .. – Thanzeem

Questions connexes