From fc8dd56bd0835d48b42f766770fcc05013ab218f Mon Sep 17 00:00:00 2001 From: JenneJ Date: Wed, 13 Jan 2016 14:53:10 +0100 Subject: [PATCH] jj 13_01_16 --- app/DD-Record-Organiser/ClassControlLoader.vb | 20 ++++++++++++++++--- app/DD-Record-Organiser/ClassControlValues.vb | 17 ++++++++++++---- .../My Project/AssemblyInfo.vb | 2 +- app/SetupWiX/Product.wxs | 2 +- app/SetupWiX/SetupWiX.wixproj | 10 ++++++++++ 5 files changed, 42 insertions(+), 9 deletions(-) diff --git a/app/DD-Record-Organiser/ClassControlLoader.vb b/app/DD-Record-Organiser/ClassControlLoader.vb index 2b7c60c..e7e044b 100644 --- a/app/DD-Record-Organiser/ClassControlLoader.vb +++ b/app/DD-Record-Organiser/ClassControlLoader.vb @@ -293,6 +293,10 @@ Public Class ListBox : Inherits _ListControl Public Shared Sub LoadValue(control As DevExpress.XtraEditors.ListBoxControl, value As String) + If IsNothing(value) Then + Exit Sub + End If + control.SelectedIndex = control.FindStringExact(value) End Sub @@ -305,15 +309,25 @@ If dynamic.DataTable IsNot Nothing AndAlso dynamic.DataTable.Rows.Count > 0 Then Dim dt As DataTable = dynamic.DataTable + Dim columnCount As Integer = dt.Columns.Count - control.DataSource = dt - If dt.Columns.Count = 1 Then + ' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt, + ' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden. + control.DataSource = Nothing + control.SelectedIndex = -1 + + ' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden, + ' Dadurch ist das Laden der Datasource um einiges SCHNELLER + If columnCount = 1 Then control.DisplayMember = dt.Columns(0).ColumnName control.ValueMember = dt.Columns(0).ColumnName - ElseIf dt.Columns.Count = 2 Then + ElseIf columnCount = 2 Then control.DisplayMember = dt.Columns(1).ColumnName control.ValueMember = dt.Columns(0).ColumnName End If + + ' Als letztes setzen wir die DataSource + control.DataSource = dt End If End Sub diff --git a/app/DD-Record-Organiser/ClassControlValues.vb b/app/DD-Record-Organiser/ClassControlValues.vb index 09203b1..dfdf997 100644 --- a/app/DD-Record-Organiser/ClassControlValues.vb +++ b/app/DD-Record-Organiser/ClassControlValues.vb @@ -227,11 +227,20 @@ Public Class ClassControlValues Dim SW As Stopwatch = Stopwatch.StartNew() For Each Ctrl As Control In controls - If TypeOf Ctrl Is ComboBox Then - Dim combobox As ComboBox = DirectCast(Ctrl, ComboBox) - ControlLoader.Combobox.LoadList(combobox, FormID, RecordID, ParentRecordId) + Select Case Ctrl.GetType() + Case GetType(ComboBox) + Dim combobox = DirectCast(Ctrl, ComboBox) + ControlLoader.Combobox.LoadList(combobox, FormID, RecordID, ParentRecordId) - End If + Case GetType(DevExpress.XtraEditors.ListBoxControl) + Dim listbox = DirectCast(Ctrl, DevExpress.XtraEditors.ListBoxControl) + ControlLoader.ListBox.LoadList(listbox, FormID, RecordID, ParentRecordId) + + Case GetType(DevExpress.XtraEditors.CheckedListBoxControl) + Dim chlistbox = DirectCast(Ctrl, DevExpress.XtraEditors.CheckedListBoxControl) + ControlLoader.CheckedListBox.LoadList(chlistbox, FormID, RecordID, ParentRecordId) + + End Select Next SW.Stop() diff --git a/app/DD-Record-Organiser/My Project/AssemblyInfo.vb b/app/DD-Record-Organiser/My Project/AssemblyInfo.vb index 18566a4..95ac96b 100644 --- a/app/DD-Record-Organiser/My Project/AssemblyInfo.vb +++ b/app/DD-Record-Organiser/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - + diff --git a/app/SetupWiX/Product.wxs b/app/SetupWiX/Product.wxs index e14377e..b2e418b 100644 --- a/app/SetupWiX/Product.wxs +++ b/app/SetupWiX/Product.wxs @@ -1,7 +1,7 @@ - + diff --git a/app/SetupWiX/SetupWiX.wixproj b/app/SetupWiX/SetupWiX.wixproj index 15e5d8e..fbd5ae5 100644 --- a/app/SetupWiX/SetupWiX.wixproj +++ b/app/SetupWiX/SetupWiX.wixproj @@ -40,8 +40,18 @@ + + + + + + + + +