Imports DevExpress.XtraGrid.Views.Grid Public Class frmLookupGrid Public Property MultiSelect As Boolean Public Property DataSource As DataTable Public Property SelectedValues As List(Of Object) Private originalValues As List(Of Object) Private Sub frmLookupGrid_Load(sender As Object, e As EventArgs) Handles Me.Load Dim view As GridView = gridLookup.DefaultView ' Anzeige Eigeschaften setzen view.OptionsFind.AlwaysVisible = True If MultiSelect Then Text = "Wählen Sie einen oder mehrere Werte:" view.OptionsSelection.MultiSelect = True view.OptionsSelection.MultiSelectMode = GridMultiSelectMode.CheckBoxRowSelect Else Text = "Wählen Sie einen Wert:" view.OptionsSelection.MultiSelect = False view.OptionsSelection.MultiSelectMode = GridMultiSelectMode.RowSelect End If ' Datasource setzen gridLookup.DataSource = DataSource ' Wenn Selected Values nicht gesetzt ist, leere Liste anlegen If SelectedValues Is Nothing Then SelectedValues = New List(Of Object) End If ' Ursprüngliche Werte zwischenspeichern originalValues = SelectedValues ' Wenn Vorbelegungen existieren ' und Mehrfachauswahl ausgewählt ist, werden diese angehakt If SelectedValues.Count > 0 And MultiSelect Then For i = 0 To view.DataRowCount - 1 Dim rowHandle = view.GetRowHandle(i) Dim rowView As DataRowView = view.GetRow(rowHandle) Dim row As DataRow = rowView.Row Dim value = row.Item(0) If SelectedValues.Contains(value) Then view.SelectRow(rowHandle) End If Next End If ' Focus auf Find panel setzen view.ShowFindPanel() End Sub Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click Dim view As GridView = gridLookup.DefaultView Dim selectedRows = view.GetSelectedRows() Dim values As New List(Of Object) For Each rowHandle In selectedRows Dim value = view.GetDataRow(rowHandle) values.Add(value.Item(0)) Next If MultiSelect Then SelectedValues = values Else SelectedValues = New List(Of Object) From {values.First()} End If End Sub Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click SelectedValues = New List(Of Object) End Sub End Class