diff --git a/LookupGrid/Grid.Designer.vb b/LookupGrid/Grid.Designer.vb index ee4a9218..a7840095 100644 --- a/LookupGrid/Grid.Designer.vb +++ b/LookupGrid/Grid.Designer.vb @@ -1,9 +1,9 @@ - _ + Partial Class Grid Inherits System.Windows.Forms.UserControl 'UserControl überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) Try If disposing AndAlso components IsNot Nothing Then @@ -20,10 +20,10 @@ Partial Class Grid 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. - _ + Private Sub InitializeComponent() Me.TextBox1 = New System.Windows.Forms.TextBox() - Me.Button1 = New System.Windows.Forms.Button() + Me.btnOpenForm = New System.Windows.Forms.Button() Me.SuspendLayout() ' 'TextBox1 @@ -33,29 +33,30 @@ Partial Class Grid Me.TextBox1.Size = New System.Drawing.Size(231, 20) Me.TextBox1.TabIndex = 0 ' - 'Button1 + 'btnOpenForm ' - Me.Button1.Location = New System.Drawing.Point(237, 0) - Me.Button1.Name = "Button1" - Me.Button1.Size = New System.Drawing.Size(37, 20) - Me.Button1.TabIndex = 1 - Me.Button1.Text = "Button1" - Me.Button1.UseVisualStyleBackColor = True + Me.btnOpenForm.Location = New System.Drawing.Point(237, 0) + Me.btnOpenForm.Name = "btnOpenForm" + Me.btnOpenForm.Size = New System.Drawing.Size(30, 20) + Me.btnOpenForm.TabIndex = 1 + Me.btnOpenForm.Text = "..." + Me.btnOpenForm.UseVisualStyleBackColor = True ' - 'LookupGrid + 'Grid ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.AutoSize = True Me.BackColor = System.Drawing.Color.Transparent - Me.Controls.Add(Me.Button1) + Me.Controls.Add(Me.btnOpenForm) Me.Controls.Add(Me.TextBox1) - Me.Name = "LookupGrid" - Me.Size = New System.Drawing.Size(323, 57) + Me.Name = "Grid" + Me.Size = New System.Drawing.Size(270, 23) Me.ResumeLayout(False) Me.PerformLayout() End Sub Friend WithEvents TextBox1 As Windows.Forms.TextBox - Friend WithEvents Button1 As Windows.Forms.Button + Friend WithEvents btnOpenForm As Windows.Forms.Button End Class diff --git a/LookupGrid/Grid.vb b/LookupGrid/Grid.vb index ec3a1a00..b29db143 100644 --- a/LookupGrid/Grid.vb +++ b/LookupGrid/Grid.vb @@ -1,7 +1,28 @@  -Public Class Grid - Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click +Imports System.ComponentModel +Public Class Grid + + Public Property MultiSelect As Boolean + + Public Property AllowAddNewValues As Boolean + + Public Property PreventDuplicates As Boolean + + Public Property DataSource As DataTable + + Public Property SelectedValues As New List(Of Object) + + Private Sub btnOpenForm_Click(sender As Object, e As EventArgs) Handles btnOpenForm.Click + Dim frm As New frmLookupGrid() With { + .MultiSelect = MultiSelect, + .AddNewValues = AllowAddNewValues, + .PreventDuplicates = PreventDuplicates, + .DataSource = DataSource, + .SelectedValues = SelectedValues + } + + frm.ShowDialog() End Sub End Class diff --git a/LookupGrid/GridControl.vb b/LookupGrid/GridControl.vb index 9546f07d..e457f7b8 100644 --- a/LookupGrid/GridControl.vb +++ b/LookupGrid/GridControl.vb @@ -2,16 +2,17 @@ Imports DevExpress.XtraGrid.Views.Base Imports DevExpress.XtraGrid.Registrator -Public Class LookupGridControl - Inherits GridControl - - Protected Overrides Function CreateDefaultView() As BaseView - Return CreateView("LookupGridView") - End Function - Protected Overrides Sub RegisterAvailableViewsCore(ByVal collection As InfoCollection) - MyBase.RegisterAvailableViewsCore(collection) - collection.Add(New GridViewInfoRegistrator()) - End Sub -End Class +Namespace LookupGrid + Public Class LookupGridControl + Inherits GridControl + Protected Overrides Function CreateDefaultView() As BaseView + Return CreateView("LookupGridView") + End Function + Protected Overrides Sub RegisterAvailableViewsCore(ByVal collection As InfoCollection) + MyBase.RegisterAvailableViewsCore(collection) + collection.Add(New GridViewInfoRegistrator()) + End Sub + End Class +End Namespace diff --git a/LookupGrid/GridHandler.vb b/LookupGrid/GridHandler.vb index 69ac4e82..31d8b5ee 100644 --- a/LookupGrid/GridHandler.vb +++ b/LookupGrid/GridHandler.vb @@ -1,18 +1,21 @@ Imports System.Windows.Forms Imports DevExpress.XtraGrid.Views.Grid +Namespace LookupGrid + Public Class GridHandler + Inherits Handler.GridHandler -Public Class GridHandler - Inherits Handler.GridHandler + Public Sub New(ByVal gridView As GridView) + MyBase.New(gridView) + End Sub - Public Sub New(ByVal gridView As GridView) - MyBase.New(gridView) - End Sub + Protected Overrides Sub OnKeyDown(ByVal e As KeyEventArgs) + MyBase.OnKeyDown(e) + If e.KeyData = Keys.Delete AndAlso View.State = GridState.Normal Then + View.DeleteRow(View.FocusedRowHandle) + End If + End Sub + End Class + +End Namespace - Protected Overrides Sub OnKeyDown(ByVal e As KeyEventArgs) - MyBase.OnKeyDown(e) - If e.KeyData = Keys.Delete AndAlso View.State = GridState.Normal Then - View.DeleteRow(View.FocusedRowHandle) - End If - End Sub -End Class diff --git a/LookupGrid/GridRegistration.vb b/LookupGrid/GridRegistration.vb index 0a9d0021..6cb00ab5 100644 --- a/LookupGrid/GridRegistration.vb +++ b/LookupGrid/GridRegistration.vb @@ -3,7 +3,8 @@ Imports DevExpress.XtraGrid.Views.Base Imports DevExpress.XtraGrid.Views.Base.Handler Imports DevExpress.XtraGrid.Registrator -Public Class GridViewInfoRegistrator +Namespace LookupGrid + Public Class GridViewInfoRegistrator Inherits GridInfoRegistrator Public Overrides ReadOnly Property ViewName() As String @@ -12,7 +13,7 @@ Public Class GridViewInfoRegistrator End Get End Property Public Overrides Function CreateView(ByVal grid As GridControl) As BaseView - Return New LookupGridView(grid) + Return New LookupGridView(TryCast(grid, GridControl)) End Function Public Overrides Function CreateHandler(ByVal view As BaseView) As BaseViewHandler Return New GridHandler(TryCast(view, LookupGridView)) @@ -20,3 +21,6 @@ Public Class GridViewInfoRegistrator End Class + +End Namespace + diff --git a/LookupGrid/GridView.Designer.vb b/LookupGrid/GridView.Designer.vb index 0f90f5f5..d7a21e07 100644 --- a/LookupGrid/GridView.Designer.vb +++ b/LookupGrid/GridView.Designer.vb @@ -1,7 +1,7 @@ Partial Class LookupGridView Inherits System.ComponentModel.Component - _ + Public Sub New(ByVal container As System.ComponentModel.IContainer) MyClass.New() @@ -12,7 +12,7 @@ End Sub - _ + Public Sub New() MyBase.New() @@ -22,7 +22,7 @@ End Sub 'Die Komponente überschreibt den Löschvorgang zum Bereinigen der Komponentenliste. - _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) Try If disposing AndAlso components IsNot Nothing Then @@ -39,7 +39,7 @@ 'Hinweis: Die folgende Prozedur ist für den Komponenten-Designer erforderlich. 'Das Bearbeiten ist mit dem Komponenten-Designer möglich. 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. - _ + Private Sub InitializeComponent() components = New System.ComponentModel.Container() End Sub diff --git a/LookupGrid/GridView.vb b/LookupGrid/GridView.vb index 0f617a6d..101e270f 100644 --- a/LookupGrid/GridView.vb +++ b/LookupGrid/GridView.vb @@ -52,4 +52,5 @@ Namespace LookupGrid End Function End Class -End Namespace \ No newline at end of file +End Namespace + diff --git a/LookupGrid/My Project/AssemblyInfo.vb b/LookupGrid/My Project/AssemblyInfo.vb index 797bea3e..a9d9594c 100644 --- a/LookupGrid/My Project/AssemblyInfo.vb +++ b/LookupGrid/My Project/AssemblyInfo.vb @@ -10,7 +10,7 @@ Imports System.Runtime.InteropServices - + diff --git a/LookupGrid/My Project/licenses.licx b/LookupGrid/My Project/licenses.licx index 824a99fc..c7c9a896 100644 --- a/LookupGrid/My Project/licenses.licx +++ b/LookupGrid/My Project/licenses.licx @@ -1 +1,3 @@ +DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/LookupGrid/frmLookupGrid.vb b/LookupGrid/frmLookupGrid.vb index 0eb654b3..aa8e8db6 100644 --- a/LookupGrid/frmLookupGrid.vb +++ b/LookupGrid/frmLookupGrid.vb @@ -90,30 +90,35 @@ Public Class frmLookupGrid view.FindFilterText = String.Empty If MultiSelect Then - Dim values As New List(Of Object) + Dim oValues As New List(Of Object) - For index = 0 To viewLookup.DataRowCount - 1 - Dim row As DataRow = view.GetDataRow(index) - Dim selected As Boolean = row.Item(0) - Dim value As Object = row.Item(1) + For oIndex = 0 To viewLookup.DataRowCount - 1 + Dim oRow As DataRow = view.GetDataRow(oIndex) + Dim oSelected As Boolean = oRow.Item(0) + Dim oValue As Object = oRow.Item(1) - If selected Then - values.Add(value) + If oSelected Then + oValues.Add(oValue) End If Next ' Doppelte Werte entfernen, wenn konfiguriert If PreventDuplicates Then - values = values.Distinct().ToList() + oValues = oValues.Distinct().ToList() End If - SelectedValues = values + SelectedValues = oValues Else - Dim rowHandle As Integer = view.GetSelectedRows().ToList().First() - Dim row As DataRow = view.GetDataRow(rowHandle) - Dim value = row.Item(0) + Dim oRowHandle As Integer = view.GetSelectedRows().ToList().FirstOrDefault() + Dim oRow As DataRow = view.GetDataRow(oRowHandle) + Dim oValues As New List(Of Object) - SelectedValues = New List(Of Object) From {value} + If oRow IsNot Nothing Then + Dim oValue = oRow.Item(0) + oValues.Add(oValue) + End If + + SelectedValues = oValues End If End Sub