diff --git a/app/DD-Record-Organiser/ClassControlBuilder.vb b/app/DD-Record-Organiser/ClassControlBuilder.vb index 8271230..cb2d96f 100644 --- a/app/DD-Record-Organiser/ClassControlBuilder.vb +++ b/app/DD-Record-Organiser/ClassControlBuilder.vb @@ -772,6 +772,8 @@ Public Class ClassControlBuilder control.Parent = _master_panel control.DropDownStyle = ComboBoxStyle.DropDown control.FormattingEnabled = True + control.AutoCompleteMode = AutoCompleteMode.Append + control.AutoCompleteSource = AutoCompleteSource.ListItems If (Not _designMode And read_only) Then control.Enabled = Not read_only diff --git a/app/DD-Record-Organiser/ClassControlValueCache.vb b/app/DD-Record-Organiser/ClassControlValueCache.vb new file mode 100644 index 0000000..3a75edb --- /dev/null +++ b/app/DD-Record-Organiser/ClassControlValueCache.vb @@ -0,0 +1,68 @@ +Public Class ClassControlValueCache + + Private Shared Property Cache As New Dictionary(Of String, Dictionary(Of String, DataTable)) + + Public Shared Function LoadFromCache(formId As Integer, controlId As Integer) As DataTable + + Dim dict As Dictionary(Of String, DataTable) = GetCachedFormDict(formId.ToString()) + + If IsNothing(dict) Then + Return Nothing + Else + + Dim dt As DataTable = GetCachedControlDict(dict, controlId.ToString()) + + If IsNothing(dt) Then + Return Nothing + Else + Return dt + End If + + End If + + End Function + + Public Shared Function SaveToCache(formId As Integer, controlId As Integer, dt As DataTable) As DataTable + + Dim dict As Dictionary(Of String, DataTable) = GetCachedFormDict(formId.ToString()) + + If IsNothing(dict) Then + dict = SetCachedFormDict(formId.ToString(), New Dictionary(Of String, DataTable)) + End If + + SetCachedControlDict(dict, controlId.ToString(), dt) + Return dt + End Function + + + Private Shared Function GetCachedFormDict(formId As Integer) As Dictionary(Of String, DataTable) + + If Cache.ContainsKey(formId.ToString()) Then + Return Cache.Item(formId.ToString()) + Else + Return Nothing + End If + + End Function + + Private Shared Function SetCachedFormDict(formId As Integer, dict As Dictionary(Of String, DataTable)) As Dictionary(Of String, DataTable) + Cache.Item(formId.ToString()) = dict + Return dict + End Function + + Private Shared Function GetCachedControlDict(dict As Dictionary(Of String, DataTable), controlId As Integer) As DataTable + + If dict.ContainsKey(controlId.ToString()) Then + Return dict.Item(controlId.ToString()) + Else + Return Nothing + End If + + End Function + + Private Shared Function SetCachedControlDict(dict As Dictionary(Of String, DataTable), controlId As Integer, dt As DataTable) As DataTable + dict.Item(controlId.ToString()) = dt + Return dt + End Function + +End Class diff --git a/app/DD-Record-Organiser/DD-Record-Organiser.vbproj b/app/DD-Record-Organiser/DD-Record-Organiser.vbproj index 9cc381f..56d608e 100644 --- a/app/DD-Record-Organiser/DD-Record-Organiser.vbproj +++ b/app/DD-Record-Organiser/DD-Record-Organiser.vbproj @@ -241,6 +241,7 @@ + diff --git a/app/DD-Record-Organiser/frmForm_Constructor_Main_2.vb b/app/DD-Record-Organiser/frmForm_Constructor_Main_2.vb index d8d4200..dfef9de 100644 --- a/app/DD-Record-Organiser/frmForm_Constructor_Main_2.vb +++ b/app/DD-Record-Organiser/frmForm_Constructor_Main_2.vb @@ -1022,6 +1022,7 @@ Public Class frmForm_Constructor_Main_2 NEW_RECORD_ID = 0 If Not RECORD_CHANGED Then Update_Status_Label(True, "KEINE Änderungen an Datensatz.") + Me.Cursor = Cursors.Default Exit Sub End If End If