Alright I am going to try to put this in the least confusing way possible. I have a form that contains multiple textboxes. These textboxes are initially disabled and their text has been grabbed from a file that has been read in. No problems yet. There are 20 lines that are read in and these "should" never be changed but I want to let the user have the opportunity (with a strict warning of course). So I have setup checkboxes next to each line that if clicked, the textboxes for that line become enabled and the user can change the text. If the user clicks the checkbox I have a YesNoCancel dialog popup and if the user clicks 'No' I want the textboxes for that line to remain disabled [/I]and[/I] the checkbox to revert back to being unchecked.
Here's my problem. Let's say the user does click yes when clicking the checkbox. He/She then makes changes to the textboxes. Then, "oops!" those changes were wrong. So then the user would click on the checkbox again only this time (since it was already checked) a different YesNoCancel dialog comes up but this time saying "Revert to Defaults?". Everything I've tried ends up displaying two dialog boxes.
Private Sub chkLine1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkLine1.CheckedChanged
If chkLine1.CheckState = CheckState.Checked Then
If MessageBox.Show("Are you sure you want to change the Header field values?", "Change Header Fields", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation) = Windows.Forms.DialogResult.Yes Then
txtLn01_DefaultText.Enabled = True
txtLn01_StartDate.Enabled = True
txtLn01_StartTime.Enabled = True
Else
chkLine1.Checked = False
txtLn01_DefaultText.Enabled = False
txtLn01_StartDate.Enabled = False
txtLn01_StartTime.Enabled = False
End If
[B]Else[/B]
If MessageBox.Show("Are you sure? Doing so will cause all values to be reset to their defaults.", "Reset to Defaults?", MessageBoxButtons.YesNoCancel) = Windows.Forms.DialogResult.Yes Then
txtLn01_DefaultText.Enabled = False
txtLn01_StartDate.Enabled = False
txtLn01_StartTime.Enabled = False
txtLn01_DefaultText.Text = AD.DF.Header.Ln01_DefaultText
txtLn01_StartDate.Text = AD.DF.Header.Ln01_StartDate
txtLn01_StartTime.Text = AD.DF.Header.Ln01_StartTime
End If
End If
End Sub
Basically what I need to know is: how can I make a checkbox, after its been clicked, not change its state until the user clicks yes or no?