From f50c7953625b41c2814fe5959f2e445cc8e8351e Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Tue, 11 Jun 2019 10:33:38 +0200 Subject: [PATCH] LookupGrid: Add SelectedValuesChanged event --- Controls.LookupGrid/LookupControl2.vb | 11 +++++++++-- LookupControlGui/Form1.vb | 13 +++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Controls.LookupGrid/LookupControl2.vb b/Controls.LookupGrid/LookupControl2.vb index c2c0633c..2a4f8ebd 100644 --- a/Controls.LookupGrid/LookupControl2.vb +++ b/Controls.LookupGrid/LookupControl2.vb @@ -13,6 +13,9 @@ Imports DevExpress.XtraEditors.Controls Public Class LookupControl2 Inherits GridLookUpEdit + Public Delegate Sub SelectedValuesChangedHandler(sender As Object, SelectedValues As List(Of String)) + Public Event SelectedValuesChanged As SelectedValuesChangedHandler + Public Property MultiSelect As Boolean Public Property AllowAddNewValues As Boolean Public Property PreventDuplicates As Boolean @@ -132,6 +135,12 @@ Public Class LookupControl2 Values.RemoveAll(Function(v) String.IsNullOrEmpty(v)) + ' Update selected values before changing edit value + ' in case EditValueChanged event is used to detect changes + _SelectedValues = Values + + RaiseEvent SelectedValuesChanged(Me, Values) + If MultiSelect = True Then Properties.DataSource = Values @@ -148,8 +157,6 @@ Public Class LookupControl2 Text = Values.FirstOrDefault() EditValue = Nothing End If - - _SelectedValues = Values End Sub Private Function GetLookupForm() As frmLookupGrid diff --git a/LookupControlGui/Form1.vb b/LookupControlGui/Form1.vb index 036687f9..0e52611c 100644 --- a/LookupControlGui/Form1.vb +++ b/LookupControlGui/Form1.vb @@ -16,8 +16,21 @@ LookupControl22.DataSource = oDatatable LookupControl22.SelectedValues = oSelectedValues LookupControl22.ReadOnly = False + LookupControl22.MultiSelect = False LookupControl22.SelectedValues = New List(Of String) From {"", Nothing, "LOL"} + + AddHandler LookupControl.SelectedValuesChanged, Sub(_sender As Object, SelectedValues As List(Of String)) + MsgBox("Selected Values: " & String.Join(",", SelectedValues.ToArray)) + End Sub + + AddHandler LookupControl21.SelectedValuesChanged, Sub(_sender As Object, SelectedValues As List(Of String)) + MsgBox("Selected Values: " & String.Join(",", SelectedValues.ToArray)) + End Sub + + AddHandler LookupControl22.SelectedValuesChanged, Sub(_sender As Object, SelectedValues As List(Of String)) + MsgBox("Selected Values: " & String.Join(",", SelectedValues.ToArray)) + End Sub End Sub Private Function GetDatatable() As DataTable