Public Class Carwashform
Const EXTERIOR1_String As String = "Hand Wash"
Const EXTERIOR2_String As String = "Hand Wax"
Const EXTERIOR3_String As String = "Check Engine Fluids"
Const EXTERIOR4_String As String = "Detail Engine Compartment"
Const EXTERIOR5_String As String = "Detail Under Carriage"
Const Interior1_String As String = "Fragrance"
Const Interior2_String As String = "Shampoo Carpets"
Const Interior3_String As String = "Interior Protecttion Coat"
Const Interior4_String As String = "Shampoo Upholstery"
Const Interior5_String As String = "Scotchgard"
Private Sub detaillistbox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DetailPackageList.SelectedIndexChanged
Exteriorlist.Items.Clear()
Interiorlist.Items.Clear()
If DetailPackageList.SelectedIndex = 0 Then
Exteriorlist.Items.Add(EXTERIOR1_String)
Interiorlist.Items.Add(Interior1_String)
'Display the options in a Deluxe Detail Package
ElseIf DetailPackageList.SelectedIndex = 1 Then
Exteriorlist.Items.Add(EXTERIOR1_String)
Exteriorlist.Items.Add(EXTERIOR2_String)
Interiorlist.Items.Add(Interior1_String)
Interiorlist.Items.Add(Interior2_String)
End If
'Display the options in a Executive Detail Package
If DetailPackageList.SelectedIndex = 2 Then
Exteriorlist.Items.Add(EXTERIOR1_String)
Exteriorlist.Items.Add(EXTERIOR2_String)
Exteriorlist.Items.Add(EXTERIOR3_String)
Interiorlist.Items.Add(Interior1_String)
Interiorlist.Items.Add(Interior2_String)
Interiorlist.Items.Add(Interior3_String)
'Display the options in a Luxury Detail Package
ElseIf DetailPackageList.SelectedIndex = 3 Then
Exteriorlist.Items.Add(EXTERIOR1_String)
Exteriorlist.Items.Add(EXTERIOR2_String)
Exteriorlist.Items.Add(EXTERIOR3_String)
Exteriorlist.Items.Add(EXTERIOR4_String)
Exteriorlist.Items.Add(EXTERIOR5_String)
Interiorlist.Items.Add(Interior1_String)
Interiorlist.Items.Add(Interior2_String)
Interiorlist.Items.Add(Interior4_String)
Interiorlist.Items.Add(Interior5_String)
End If
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim strDetail1, strDetail2, strDetail3, strDetail4 As String
strDetail1 = "Standard"
strDetail2 = "Deluxe"
strDetail3 = "Executive"
strDetail4 = "Luxury"
Me.DetailPackageList.Items.Add(strDetail1)
Me.DetailPackageList.Items.Add(strDetail2)
Me.DetailPackageList.Items.Add(strDetail3)
Me.DetailPackageList.Items.Add(strDetail4)
End Sub
Private Sub exitbutton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles exitbutton.Click
Me.Close()
End Sub
Private Sub clearbutton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles clearbutton.Click
Exteriorlist.Items.Clear()
Interiorlist.Items.Clear()
End Sub
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
'Set up the printer output
Dim PrintFont As New Font("Arial", 12)
Dim LineHeightSingle As Single = PrintFont.GetHeight + 2
Dim VerticalPrintLocationSingle As Single = e.MarginBounds.Left
Dim HorizontalPrintLocationSingle As Single = e.MarginBounds.Top
Dim PrintLineString As String
Using HeadingFont As New Font("Arial", 14)
'Print Report Headings
PrintLineString = "Car Wash at VB auto Center"
e.Graphics.DrawString(PrintLineString, HeadingFont, Brushes.Black, VerticalPrintLocationSingle, HorizontalPrintLocationSingle)
HorizontalPrintLocationSingle += LineHeightSingle
End Using
'Print the programmer's name
PrintLineString = "Programmer: Me"
e.Graphics.DrawString(PrintLineString, PrintFont, Brushes.Black, VerticalPrintLocationSingle, HorizontalPrintLocationSingle)
HorizontalPrintLocationSingle += LineHeightSingle * 2
'Print the exterior data
PrintLineString = "Exterior: "
e.Graphics.DrawString(PrintLineString, PrintFont, Brushes.Black, VerticalPrintLocationSingle, HorizontalPrintLocationSingle)
HorizontalPrintLocationSingle += LineHeightSingle
For ListIndexInteger As Integer = 0 To Exteriorlist.Items.Count - 1
PrintLineString = Exteriorlist.Items(ListIndexInteger).ToString
e.Graphics.DrawString(PrintLineString, PrintFont, Brushes.Black, VerticalPrintLocationSingle, HorizontalPrintLocationSingle)
HorizontalPrintLocationSingle += LineHeightSingle
Next ListIndexInteger
HorizontalPrintLocationSingle += LineHeightSingle 'Blank line
'Print the interior data
PrintLineString = "Interior: "
e.Graphics.DrawString(PrintLineString, PrintFont, Brushes.Black, VerticalPrintLocationSingle, HorizontalPrintLocationSingle)
HorizontalPrintLocationSingle += LineHeightSingle
For ListIndexInteger2 As Integer = 0 To Interiorlist.Items.Count - 1
PrintLineString = Exteriorlist.Items(ListIndexInteger2).ToString
e.Graphics.DrawString(PrintLineString, PrintFont, Brushes.Black, VerticalPrintLocationSingle, HorizontalPrintLocationSingle)
HorizontalPrintLocationSingle += LineHeightSingle
Next ListIndexInteger2
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
PrintPreviewDialog1.Document = PrintDocument1
Catch es As Exception
MessageBox.Show(es.Message)
End Try
PrintPreviewDialog1.ShowDialog()
End Sub
End Class
We want to create an application for the car wash at VB Auto Center.
The form will contain three list box controls that do not permit the user to type in items at run time. The
first list will contain the names of the packages available for detailing a vehicle: Standard, Deluxe,
Executive, or Luxury.
The contents of the other two lists will vary depending upon the package selected. Display one list for the
interior work and one list for the exterior work. Store the descriptions of the items in string constants.
You must clear the lists for the interior and exterior for each order and add new items to the lists each
time the user makes a selection from the package list.
Use a drop-down list to allow the user to select the fragrance. The choices are Hawaiian Mist, Baby
Powder, Pine, Country Floral, Pina Colada, and Vanilla.
Include menu items for Print Order, Clear, and Exit with appropriate access keys. The print option should
send its output to the Print Preview window. Include your name and a heading at the top of the report.
The Order printout will contain the package name (Standard, Deluxe, Executive, or Luxury), the interior
and exterior items included, and the fragrance selected. Use a For/Next loop when printing the interior
and exterior lists.