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

View File

@ -45,7 +45,8 @@ Public Class frmLookup
Dim oDatatable As New DataTable Dim oDatatable As New DataTable
Dim oColumns As New List(Of DataColumn) From { Dim oColumns As New List(Of DataColumn) From {
New DataColumn("Col1", GetType(String)), New DataColumn("Col1", GetType(String)),
New DataColumn("Col2", GetType(String)) New DataColumn("Col2", GetType(String)),
New DataColumn("Col3", GetType(String))
} }
oDatatable.Columns.AddRange(oColumns.ToArray) oDatatable.Columns.AddRange(oColumns.ToArray)
@ -54,6 +55,7 @@ Public Class frmLookup
Dim oRow = oDatatable.NewRow() Dim oRow = oDatatable.NewRow()
oRow.Item("Col1") = Item oRow.Item("Col1") = Item
oRow.Item("Col2") = Item & "_" & "SomeLong Random(String) !!!111einself" oRow.Item("Col2") = Item & "_" & "SomeLong Random(String) !!!111einself"
oRow.Item("Col3") = Item & "_" & "SomeLong OTHER Random(String) !!!111einself"
oDatatable.Rows.Add(oRow) oDatatable.Rows.Add(oRow)
Next Next