0

必須フィールドにデータを入力せずに送信ボタンを押すと、コントロールの背景色を赤に設定します。しかし、これらの欠落している必須フィールドにデータを再入力する必要があります。データを再入力し始めると、背景の赤い色が白くなります。他のすべての必須フィールドの色を白に変更する機会はありますか?

Private Sub TXTEMPID_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TXTEMPID.KeyPress
    UncheckMyControls()
    If Asc(e.KeyChar) <> 8 Then
        If Asc(e.KeyChar) < 48 Or Asc(e.KeyChar) > 57 Then
            e.Handled = True
        End If
    End If
End Sub

Private Sub UncheckMyControls()
    Dim txt, cmb, mtxt, rtxt As Control
    For Each cmb In EMPGBDATA.Controls
        If TypeOf cmb Is ComboBox Then
            If cmb.BackColor = Color.Red Then
                cmb.BackColor = Color.White
            End If
        End If
    Next
    For Each rtxt In EMPGBDATA.Controls
        If TypeOf rtxt Is RichTextBox Then
            If rtxt.BackColor = Color.Red Then
                rtxt.BackColor = Color.White
            End If
        End If
    Next
    For Each mtxt In EMPGBDATA.Controls
        If TypeOf mtxt Is MaskedTextBox Then
            If mtxt.BackColor = Color.Red Then
                mtxt.BackColor = Color.White
            End If
        End If
    Next
    For Each txt In EMPGBDATA.Controls
        If TypeOf txt Is TextBox Then
            If txt.BackColor = Color.Red Then
                txt.BackColor = Color.White
            End If
        End If
    Next
End Sub

これは私のコードです

4

1 に答える 1

0

SolarBearが提案したように:

     For Each cnt In EMPGBDATA.Controls
        If cnt.BackColor = Color.Red Then
            cnt.BackColor = Color.White
        End If
      Next

今、あなたの問題を正確に説明できますか?

コメントの後:必須フィールドが空白かどうかを確認できると言いました。そうであれば、背景色を赤に設定しています。そしてあなたはメッセージとしてポップアップします。ユーザーがテキストボックスのいずれかに何かを入力して色を白にリセットしようとする最初のメッセージの後:

   Private Sub txt_KeyPress(sender As System.Object, e As System.EventArgs) Handles TextBox1.KeyPress,TextBox2.KeyPress,TextBox3.KeyPress,TextBox4.KeyPress
 'After the Handles you put all the textboxes,richtexboxes that you want
 'THis way you handle the same event for a lot of controls in the same Sub
     UncheckMyControls()
   End Sub

だからあなたのコメントの後2:

    Private Sub control_KeyPress(sender As System.Object, e As System.EventArgs) Handles TextBox1.KeyPress,TextBox2.KeyPress,TextBox3.KeyPress,ComboBox1.KeyPress,ComboBox2.KeyPress
 'After the Handles you put all the textboxes,richtexboxes,comboboxes that you want
 'THis way you handle the same event for a lot of controls in the same Sub
     UncheckMyControls()
   End Sub
于 2013-01-09T15:19:05.323 に答える