LookupGrid: BestFit for Value Column

This commit is contained in:
Jonathan Jenne
2021-04-12 15:51:54 +02:00
parent e7287e4b24
commit 86ec33251b
2 changed files with 17 additions and 8 deletions

View File

@@ -1,5 +1,6 @@
Imports System.Windows.Forms
Imports DevExpress.XtraGrid
Imports DevExpress.XtraGrid.Columns
Imports DevExpress.XtraGrid.Views.Base
Imports DevExpress.XtraGrid.Views.Grid
@@ -12,6 +13,8 @@ Public Class frmLookupGrid
Public Property NewValues As New HashSet(Of String)
Public Const COLUMN_SELECTED = "SELECTED"
Public Const COLUMN_VALUE = "VALUE"
Public Const TABLE_TEMP = "TEMP"
Private _DataColumn As Integer
Private _DataSourceTemp As DataTable
@@ -25,21 +28,21 @@ Public Class frmLookupGrid
' Original Datasource soll nicht verändert werden
If DataSource Is Nothing Then
_DataSourceTemp = New DataTable("TEMP")
_DataSourceTemp.Columns.Add(New DataColumn("VALUE"))
_DataSourceTemp = New DataTable(TABLE_TEMP)
_DataSourceTemp.Columns.Add(New DataColumn(COLUMN_VALUE))
Else
_DataSourceTemp = DataSource.Copy()
End If
If MultiSelect Then
If Not _DataSourceTemp.Columns.Contains(COLUMN_SELECTED) Then
Dim selectedColumn = New DataColumn() With {
.ColumnName = "SELECTED",
Dim oSelectedColumn = New DataColumn() With {
.ColumnName = COLUMN_SELECTED,
.DataType = GetType(Boolean),
.DefaultValue = False
}
_DataSourceTemp.Columns.Add(selectedColumn)
selectedColumn.SetOrdinal(0)
_DataSourceTemp.Columns.Add(oSelectedColumn)
oSelectedColumn.SetOrdinal(0)
End If
End If
@@ -87,6 +90,10 @@ Public Class frmLookupGrid
' Spaltenbreite anpassen
_View.BestFitColumns()
' Datenspalte zusätzlich in der Breite anpassen
Dim oDataColumn As GridColumn = _View.Columns.Item(_DataColumn)
oDataColumn.BestFit()
End Sub
Private Sub SaveSelectedValues()
@@ -205,7 +212,7 @@ Public Class frmLookupGrid
Private Sub viewLookup_ShowingEditor(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles viewLookup.ShowingEditor
Dim rowHandleIsNewItemRow = (_View.FocusedRowHandle = GridControl.NewItemRowHandle)
Dim columnIsCheckboxColumn = _View.FocusedColumn.FieldName = "SELECTED"
Dim columnIsCheckboxColumn = (_View.FocusedColumn.FieldName = COLUMN_SELECTED)
' Prevent editing of Data Column/allow editing for Checkbox Column and NewValue Row
If rowHandleIsNewItemRow Or columnIsCheckboxColumn Then