From 9578a36b4128a04a12cce5ab8a080ba620466990 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Mon, 4 Oct 2021 14:15:52 +0200 Subject: [PATCH] Common/GridBuilder: Add WithClipboardHandler --- GUIs.Common/GridBuilder.vb | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/GUIs.Common/GridBuilder.vb b/GUIs.Common/GridBuilder.vb index e754d051..0ea7dd2c 100644 --- a/GUIs.Common/GridBuilder.vb +++ b/GUIs.Common/GridBuilder.vb @@ -1,4 +1,5 @@ Imports System.Drawing +Imports System.Windows.Forms Imports DevExpress.XtraGrid.Views.Grid Imports DevExpress.XtraTreeList @@ -80,4 +81,28 @@ Public Class GridBuilder Return Me End Function + + Public Function WithClipboardHandler() As GridBuilder + For Each oGridView In Views + WithClipboardHandler(oGridView) + Next + + Return Me + End Function + + Public Function WithClipboardHandler(View As GridView) As GridBuilder + AddHandler View.KeyDown, AddressOf GridView_ClipboardHandler + + Return Me + End Function + + Private Sub GridView_ClipboardHandler(sender As Object, e As KeyEventArgs) + Dim view As GridView = CType(sender, GridView) + If e.Control AndAlso e.KeyCode = Keys.C Then + If view.GetRowCellValue(view.FocusedRowHandle, view.FocusedColumn) IsNot Nothing AndAlso view.GetRowCellValue(view.FocusedRowHandle, view.FocusedColumn).ToString() <> [String].Empty Then + Clipboard.SetText(view.GetRowCellValue(view.FocusedRowHandle, view.FocusedColumn).ToString()) + End If + e.Handled = True + End If + End Sub End Class