Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Calling User Control Validation 1

Status
Not open for further replies.

Auguy

Programmer
May 1, 2004
1,206
US
Dumb question. I searched for an answer but didn't find what I was looking for. I want to create a user control for date entry that would consist of a textbox for typing a date and a date time picker for using the mouse. It will have some validations for valid dates, etc. That I can do. My question is once this control is on a windows form, how can I setup a validation event on the form that will run the validation of the user control and then let me do other stuff. Example: Using the control as an invoice date and recalculating the due date once the invoice date is validated. Here is a sample of what I would like to do only having it be the validation on the user control not the dtp.
Code:
  Private Sub dtp_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles dtpInvoiceDate.Validated, dtpDueDate.Validated
      Dim myDtp As DateTimePicker
      myDtp = DirectCast(sender, DateTimePicker)
      If myDtp.Value = DateMinimum Then
        myDtp.CustomFormat = " "
      Else
        myDtp.CustomFormat = "MM/dd/yyyy"
      End If

      If myDtp.Name.ToUpper = "dtpInvoiceDate".ToUpper Then
        SetDueDate()
      End If
  End Sub
Not sure how to set this up. Is this where I would use an override?

Auguy
Sylvania/Toledo Ohio
 
First you declare an EventHandler in the user control:

Public dtpValidated As EventHandler

Then in the Validated event handler in the user control, raise that event:

Private Sub dtp_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles dtpInvoiceDate.Validated, dtpDueDate.Validated
Dim myDtp As DateTimePicker
myDtp = DirectCast(sender, DateTimePicker)
If myDtp.Value = DateMinimum Then
myDtp.CustomFormat = " "
Else
myDtp.CustomFormat = "MM/dd/yyyy"
End If

If myDtp.Name.ToUpper = "dtpInvoiceDate".ToUpper Then
SetDueDate()
End If

[red]RaiseEvent dtpValidated(Me, e)[/red]​
End Sub

Finally, in the form, just set up the event handler:

Private Sub UserControl1_dtpValidated(ByVal sender As Object, ByVal e As System.EventArgs) Handles UserControl1.dtpValidated
'do stuff and/or junk
End Sub

Now when the user control validates the date, it will raise an event to the containing form and you can do whatever you want there.

I used to rock and roll every night and party every day. Then it was every other day. Now I'm lucky if I can find 30 minutes a week in which to get funky. - Homer Simpson

Arrrr, mateys! Ye needs ta be preparin' yerselves fer Talk Like a Pirate Day!
 
Arrr! Thanks Matey!

Auguy
Sylvania/Toledo Ohio
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top