From f8a2f73bb9b1f1cd571a900b47a5fe0782d7aaf9 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Mon, 18 Dec 2023 13:55:41 +0100 Subject: [PATCH] add f2 to open, backspace to clear --- Controls.LookupGrid/LookupControl3.vb | 15 +++++++ Controls.LookupGrid/frmLookupGrid.vb | 62 +++++++++++++++++++-------- 2 files changed, 58 insertions(+), 19 deletions(-) diff --git a/Controls.LookupGrid/LookupControl3.vb b/Controls.LookupGrid/LookupControl3.vb index 659f3954..fd017a90 100644 --- a/Controls.LookupGrid/LookupControl3.vb +++ b/Controls.LookupGrid/LookupControl3.vb @@ -15,6 +15,8 @@ Imports DevExpress.XtraGrid.Columns Public Class LookupControl3 Inherits GridLookUpEdit + Private Const TAG_BUTTON_LOOKUP_FORM = "openLookupForm" + Public Shadows ReadOnly Property Properties As RepositoryItemLookupControl3 Get @@ -36,6 +38,19 @@ Public Class LookupControl3 e.Cancel = True End Sub + Private Sub LookupControl3_KeyUp(sender As Object, e As KeyEventArgs) Handles Me.KeyUp + If e.KeyCode = Keys.F2 Then + Dim oLookup As LookupControl3 = sender + Dim oButton As EditorButton = oLookup.Properties.Buttons. + Where(Function(b) b.Tag = TAG_BUTTON_LOOKUP_FORM). + SingleOrDefault() + + If oButton IsNot Nothing Then + oLookup.PerformClick(oButton) + End If + End If + End Sub + Shadows WithEvents fProperties As RepositoryItemGridLookUpEdit Friend WithEvents fPropertiesView As DevExpress.XtraGrid.Views.Grid.GridView End Class diff --git a/Controls.LookupGrid/frmLookupGrid.vb b/Controls.LookupGrid/frmLookupGrid.vb index c03ac661..46f22a8d 100644 --- a/Controls.LookupGrid/frmLookupGrid.vb +++ b/Controls.LookupGrid/frmLookupGrid.vb @@ -22,6 +22,8 @@ Public Class frmLookupGrid Private _Grid As GridControl Private ReadOnly _R As Resources.ResourceManager = My.Resources.Strings.ResourceManager + Private colCheckbox As GridColumn + #Region "Form Events" Private Sub frmLookupGrid_Load(sender As Object, e As EventArgs) Handles Me.Load _View = viewLookup @@ -57,12 +59,12 @@ Public Class frmLookupGrid If MultiSelect Then ' Selected Spalte anpassen - Dim oCheckboxColumn = _View.Columns.Item(0) + colCheckbox = _View.Columns.Item(0) 'oCheckboxColumn.Visible = False - oCheckboxColumn.Caption = " " - oCheckboxColumn.MaxWidth = 30 - oCheckboxColumn.MinWidth = 30 - oCheckboxColumn.OptionsColumn.AllowFocus = False + colCheckbox.Caption = " " + colCheckbox.MaxWidth = 30 + colCheckbox.MinWidth = 30 + colCheckbox.OptionsColumn.AllowFocus = False Text = _R.GetString("PopupForm_TextMultiselect") @@ -107,14 +109,24 @@ Public Class frmLookupGrid #End Region #Region "Button Events" Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click - SaveSelectedValues() + SaveAndClose() + End Sub + + Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click + ClearAndClose() + End Sub + + Private Sub ClearAndClose() + SelectedValues = New List(Of String) DialogResult = DialogResult.OK Close() End Sub - Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click - SelectedValues = New List(Of String) + Private Sub SaveAndClose() + ' Make sure the currently focused row's state is saved + viewLookup.PostEditor() + SaveSelectedValues() DialogResult = DialogResult.OK Close() @@ -130,17 +142,29 @@ Public Class frmLookupGrid End Sub Private Sub HandleCustomKeys(e As KeyEventArgs) - If e.KeyCode = Keys.Escape Then - Close() - - ElseIf e.KeyCode = Keys.F2 Then - ' Make sure the currently focused row's state is saved - viewLookup.PostEditor() - SaveSelectedValues() - - DialogResult = DialogResult.OK - Close() - End If + Select Case e.KeyCode + Case Keys.Escape + Close() + + Case Keys.F2 + SaveAndClose() + + Case Keys.Back + ClearAndClose() + + Case Keys.Space + If MultiSelect Then + Dim oHandle = viewLookup.FocusedRowHandle + If oHandle >= 0 Then + Dim oIsChecked = viewLookup.GetRowCellValue(oHandle, colCheckbox) + If oIsChecked Then + viewLookup.SetRowCellValue(oHandle, colCheckbox, False) + Else + viewLookup.SetRowCellValue(oHandle, colCheckbox, True) + End If + End If + End If + End Select End Sub #End Region #Region "View Events"