Actually I did that. Finger pinky swear. It just came out the way it did. Your interface sometimes leaves much to be desired.
Anyway, here I go again and it looks better.
Form Event:
Private Sub DocRecord_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
If MyUser = "DocMaster" Then
GetDocument(MasterID)
SetState("View")
BindControls()
Else
Select Case DocState
Case "Add"
UpRevision = ""
MasterID = GetMasterBaseID(MasterID).ToString 'Create MasterBase ID
lblDocID.Text = MasterID
lblFilePath.Text = GetDirectory(MyDirectory).ToString
lblRev.Text = IncrementAARevision(UpRevision).ToString
rdoActive.Checked = False
SetState("View")
Case "View", "Edit", "Revise"
GetDocument(MasterID)
If DocState = "Revise" Then
SetState("Edit")
BindControls()
UpRevision = lblRev.Text
lblDocID.Text = MasterID
lblRev.Text = IncrementAARevision(UpRevision).ToString()
lblFilePath.Text = GetDirectory(MyDirectory).ToString
rdoActive.Checked = False
cboDoc.Text = ""
cboOwner.Text = ""
cboWhere.Text = ""
Else
SetState("View")
BindControls()
End If
End Select
End If
End Sub
So, basically, the two lines:
SetState("View")
BindControls()
must be in this order, else any combo box on the form will not execute correctly.
Set State:
Private Sub SetState(ByVal AppState As String)
#Region "General Form Properties"
Me.Text = "Document Record"
#End Region
Select Case AppState
Case "Add"
#Region "Button Properties"
btnObsolete.Enabled = False
btnEdit.Enabled = False
btnCancel.Enabled = True
btnSave.Enabled = True
btnScan.Enabled = False
btnItem.Enabled = False
btnClose.Enabled = False
btnHelp.Enabled = True
#End Region
#Region "Control Properties"
pnlDocRecord.Enabled = True
lblDocID.Visible = True
txtName.ReadOnly = False
txtDescription.ReadOnly = False
lblFilePath.ForeColor = Color.Blue
cboDoc.Enabled = False
cboDoc.TabIndex = 2
cboDoc.TabStop = False
cboDoc.ValueMember = "DocType"
cboDoc.DisplayMember = "DocType"
cboDoc.SelectedIndex = -1
cboOwner.Enabled = False
cboOwner.TabIndex = 2
cboOwner.TabStop = False
cboOwner.ValueMember = "Department"
cboOwner.DisplayMember = "Department"
cboOwner.SelectedIndex = -1
cboWhere.Enabled = False
cboWhere.TabIndex = 2
cboWhere.TabStop = False
cboWhere.ValueMember = "Where"
cboWhere.DisplayMember = "Where"
cboWhere.SelectedIndex = -1
rdoActive.Visible = True
rdoActive.Enabled = False
rdoObsolete.Visible = True
rdoObsolete.Enabled = False
txtName.Focus()
#End Region
Case "Edit", "Revise"
#Region "Button Properties"
btnObsolete.Enabled = False
btnEdit.Enabled = False
btnCancel.Enabled = True
btnSave.Enabled = True
btnScan.Enabled = False
btnItem.Enabled = False
btnClose.Enabled = False
btnHelp.Enabled = True
#End Region
#Region "Control Properties"
pnlDocRecord.Enabled = True
lblDocID.Visible = True
txtName.ReadOnly = False
txtName.TabIndex = 0
txtName.TabStop = True
txtDescription.ReadOnly = False
txtDescription.TabIndex = 1
txtDescription.TabStop = True
lblFilePath.ForeColor = Color.Blue
cboDoc.Enabled = True
cboDoc.TabIndex = 2
cboDoc.TabStop = True
cboDoc.DataSource = DocBindingSource
cboDoc.ValueMember = "DocType"
cboDoc.DisplayMember = "DocType"
cboOwner.Enabled = True
cboOwner.TabIndex = 3
cboOwner.TabStop = True
cboOwner.DataSource = OwnerBindingSource
cboOwner.ValueMember = "Department"
cboOwner.DisplayMember = "Department"
cboWhere.Enabled = True
cboWhere.TabIndex = 4
cboWhere.TabStop = True
cboWhere.DataSource = WhereBindingSource
cboWhere.ValueMember = "Where"
cboWhere.DisplayMember = "Where"
rdoActive.Visible = True
rdoActive.Enabled = False
rdoObsolete.Visible = True
rdoObsolete.Enabled = False
txtName.Focus()
#End Region
Case "View"
#Region "Button Properties"
btnObsolete.Enabled = False
If MyUser = "DocMaster" Then btnEdit.Enabled = False Else btnEdit.Enabled = True
btnCancel.Enabled = False
btnSave.Enabled = False
btnScan.Enabled = False
btnItem.Enabled = False
btnClose.Enabled = True
btnHelp.Enabled = True
#End Region
#Region "Control Properties"
pnlDocRecord.Enabled = True
lblDocID.Visible = True
txtName.ReadOnly = True
txtName.TabIndex = 0
txtName.TabStop = False
txtDescription.ReadOnly = True
txtDescription.TabIndex = 1
txtDescription.TabStop = False
lblFilePath.ForeColor = Color.Blue
cboDoc.Enabled = False
cboDoc.TabIndex = 2
cboDoc.TabStop = False
cboDoc.DataSource = DocBindingSource
cboDoc.ValueMember = "DocType"
cboDoc.DisplayMember = "DocType"
cboDoc.SelectedIndex = -1
cboOwner.Enabled = False
cboOwner.TabIndex = 3
cboOwner.TabStop = False
cboOwner.DataSource = OwnerBindingSource
cboOwner.ValueMember = "Department"
cboOwner.DisplayMember = "Department"
cboOwner.SelectedIndex = -1
cboWhere.Enabled = False
cboWhere.TabIndex = 4
cboWhere.TabStop = False
cboWhere.DataSource = WhereBindingSource
cboWhere.ValueMember = "Where"
cboWhere.DisplayMember = "Where"
cboWhere.SelectedIndex = -1
rdoActive.Visible = True
rdoActive.Enabled = False
rdoObsolete.Visible = True
rdoObsolete.Enabled = False
txtName.Focus()
#End Region
End Select
End Sub
BindControls():
Private Sub BindControls()
Dim MasterBaseBindingSource As New BindingSource
MasterBaseBindingSource.DataSource = MasterBase
lblDocID.DataBindings.Add("Text", MasterBase.ListTable, "MasterBaseID")
lblRev.DataBindings.Add("Text", MasterBase.ListTable, "Revision")
txtName.DataBindings.Add("Text", MasterBase.ListTable, "Title")
txtDescription.DataBindings.Add("Text", MasterBase.ListTable, "Description")
lblFilePath.DataBindings.Add("Text", MasterBase.ListTable, "FilePath")
cboDoc.DataBindings.Add("Text", MasterBase.ListTable, "DocType")
cboWhere.DataBindings.Add("Text", MasterBase.ListTable, "WhereUsed")
cboOwner.DataBindings.Add("Text", MasterBase.ListTable, "Owner")
rdoActive.DataBindings.Add("Checked", MasterBase.ListTable, "Effective", True, DataSourceUpdateMode.OnValidation, CheckState.Indeterminate)
rdoObsolete.DataBindings.Add("Checked", MasterBase.ListTable, "Obsolete", True, DataSourceUpdateMode.OnValidation, CheckState.Indeterminate)
End Sub
This order, for those two lines, only matter where comboboxes are concerned. I cannot, for the life of me, understand why this is so.