Ok so I am trying to make it so that when my form closes and there is text in any of the text boxes it will ask you to save. I have most of it worked out but whenever I click cancel it either keeps popping up the same messagebox repeatedly otherwise if I click "yes" to open the savefiledialog and then select "cancel" and than "cancel" on the message box again it closes the program.
I'd like it to just return to the main form...
Here's the code that I have (I wasn't sure where the problem is exactly so here's all the code for the form...) I do know it won't let me e.cancel = true for the cancel button it throws an error.
Code:Imports System.IO Public Class mainWindow Private Sub checkTextBoxes(e As System.ComponentModel.CancelEventArgs) 'THIS IS PART OF THE PROBLEM 'Declare the variables Dim ctrl As Control Dim firstName As String = txtFirstName.Text Dim lastName As String = txtLastName.Text 'Check all the text boxes For Each ctrl In Me.Controls If (TypeOf ctrl Is TextBox) Then If ctrl.Text <> "" Then 'Set sfdmainWindow properties With sfdmainWindow .DefaultExt = "rei" .FileName = firstName & " " & lastName & " " & "-" & " " & Today() .Filter = "Reichel Lead Log File (*.rei) | *.rei" .FilterIndex = 1 .OverwritePrompt = True .Title = "Reichel Insulation - Lead Log" End With 'Declare variables Dim msg As String Dim title As String Dim style As MsgBoxStyle Dim response As MsgBoxResult msg = "Would you like to save before quitting?" ' Define message. style = MsgBoxStyle.DefaultButton3 Or MsgBoxStyle.Question Or MsgBoxStyle.YesNoCancel title = "Reichel Insulation - Lead Log" ' Define title. ' Display message. response = MsgBox(msg, style, title) If response = MsgBoxResult.Yes Then sfdmainWindow.ShowDialog() End If If response = MsgBoxResult.No Then End End If If response = MsgBoxResult.Cancel Then e.Cancel = True 'THIS IS PART OF THE PROBLEM End If End If End If Next ctrl End Sub 'INSERT TOOLTIPS ON FORM Private Sub ToolTips() Me.toolTmainWindow.SetToolTip(Me.cbxRep, "Who is the sales rep that will handle this customer estimate?") Me.toolTmainWindow.SetToolTip(Me.cbxJobType, "What is the main job type for this estimate?") Me.toolTmainWindow.SetToolTip(Me.cbxSource, "Where did the customer hear about us?") Me.toolTmainWindow.SetToolTip(Me.txtSource, "If the customer heard about us from a source" & ControlChars.NewLine & "other than what's listed please enter it here.") Me.toolTmainWindow.SetToolTip(Me.txtFirstName, "What is the Customers first name?") Me.toolTmainWindow.SetToolTip(Me.txtLastName, "What is the Customer last name?") Me.toolTmainWindow.SetToolTip(Me.txtAddress1, "What is the customers address?") Me.toolTmainWindow.SetToolTip(Me.txtAddress2, "What is the customers city?") Me.toolTmainWindow.SetToolTip(Me.txtZipCode, "What is the customers zip code?") Me.toolTmainWindow.SetToolTip(Me.cbxState, "What is the customers state?") Me.toolTmainWindow.SetToolTip(Me.txtBusinessName, "What is the name of the customers business name?") Me.toolTmainWindow.SetToolTip(Me.txtEmail, "What is the customers email address?") Me.toolTmainWindow.SetToolTip(Me.cbxTimeHour, "Enter the hour that the customer called.") Me.toolTmainWindow.SetToolTip(Me.cbxTimeMinute, "Enter the minute range that the customer called.") Me.toolTmainWindow.SetToolTip(Me.cbxTimeAMPM, "Enter the AM/PM when the customer called.") Me.toolTmainWindow.SetToolTip(Me.txtComments, "Please fill out as much information about the job that we will be bidding" & ControlChars.NewLine & "along with any additional jobs that will be doing") End Sub 'CLEAR THE TEXT BOXES ON THE FORM Private Sub ResetForm(ByVal root As Control) For Each ctrl As Control In root.Controls ResetForm(ctrl) If TypeOf ctrl Is TextBox Then CType(ctrl, TextBox).Text = String.Empty End If If TypeOf ctrl Is ComboBox Then CType(ctrl, ComboBox).Items.Clear() End If Next monCalendar.SelectionStart = Today End Sub 'WHAT HAPPENS WHEN THE FORM CLOSES Private Sub mainWindow_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing checkTextBoxes() 'THIS IS PART OF THE PROBLEM End Sub 'WHAT HAPPENS WHEN THE MAIN FORM LOADS Private Sub mainWindow_Load(sender As Object, e As EventArgs) Handles MyBase.Load 'Show the startWindow form startWindow.ShowDialog() ToolTips() End Sub 'WHAT HAPPENS WHEN THE SAVE BUTTON IS CLICKED Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click 'Set Variables Dim firstName As String = txtFirstName.Text Dim lastName As String = txtLastName.Text 'Set sfdmainWindow properties With sfdmainWindow .DefaultExt = "rei" .FileName = firstName & " " & lastName & " " & "-" & " " & Today() .Filter = "Reichel Lead Log File (*.rei) | *.rei" .FilterIndex = 1 .OverwritePrompt = True .Title = "Reichel Insulation - Lead Log" End With 'Save the file sfdmainWindow.ShowDialog() End Sub 'WHAT HAPPENS WHEN THE SOURCE COMBO BOX ITEM IS CHANGED Private Sub cbxSource_SelectedValueChanged(sender As Object, e As EventArgs) Handles cbxSource.SelectedValueChanged If cbxSource.SelectedItem = "Other" Then txtSource.Enabled = True Else txtSource.Enabled = False End If End Sub 'WHAT HAPPENS WHEN THE CANCEL BUTTON IS CLICKED Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click checkTextBoxes() 'THIS IS PART OF THE PROBLEM End Sub 'WHAT HAPPENS WHEN THE HOUR SELCTION IS CHANGED Private Sub cbxTimeHour_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbxTimeHour.SelectedIndexChanged cbxTimeMinute.Enabled = True End Sub 'WHAT HAPPENS WHEN THE MINUTE SELECTION IS CHANGED Private Sub cbxTimeMinute_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbxTimeMinute.SelectedIndexChanged cbxTimeAMPM.Enabled = True End Sub 'RESET THE FORM TO THE DEFAULTS BY CLICKING THE FILE-NEW ITEM Private Sub NewToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NewToolStripMenuItem.Click 'Clear the textboxes ResetForm(Me) 'Set the focus to the Sales Rep ComboBox cbxRep.Focus() End Sub 'ENABLE THE SAVE BUTTON --- TEXTBOX FIRST NAME Private Sub txtFirstName_TextChanged(sender As Object, e As EventArgs) Handles txtFirstName.TextChanged, txtLastName.TextChanged If txtFirstName.TextLength = 0 Then btnSave.Enabled = False Else btnSave.Enabled = True End If End Sub 'OPEN FILE DIALOG MENU STRIP Private Sub OpenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles OpenToolStripMenuItem.Click ofdmainWindow.ShowDialog() End Sub 'SAVE FILE DIALOG MENU STRIP Private Sub SaveToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SaveToolStripMenuItem.Click sfdmainWindow.ShowDialog() End Sub 'EXIT PROGRAM MENU STRIP Private Sub ExitToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExitToolStripMenuItem.Click checkTextBoxes() 'THIS IS PART OF THE PROBLEM End Sub End Class




Reply With Quote
