' robin de bock 10/08/2017
Imports System.Data.Odbc
Imports TA_OR_rework.Domeincontroller
Public Class FormGrid
Private _tabel As Kolommen
Private _waarde As Object
Private _gegenereerd As Boolean = False
Private _barcode As String
Private _onderdeel As String
Private _initiëleHoogteElementenBuitenDataGridViewCache As Integer
Private _batchViaBarcodeOfToelevering As String
Private _toeleveringIdViaBarcode As String
Public Sub New()
InitializeComponent()
End Sub
'Filterbuttons en kolommen in reworkgrid genereren.
Private Sub FormGrid_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'Filter buttons configureren naargelang de resolutie.
configureerGrootteFilterButtons()
'Genereren van de buttons om te filteren.
genereerFilterButtons()
'De kolommen in het hoofdgrid genereren.
genereerKolommenReworkGrid()
_gegenereerd = True
'Tonen of de reworks wel verwerkt worden afhankelijk van de verwerkstatus (debuggen).
lblVerwerking.Visible = Not Configs.geefVerwerkStatus
End Sub
'Instellen van de data die door selectID form wordt meegegeven
Public Sub LaadData(tabel As Kolommen, waarde As Object, ByRef datareader As Object)
'De data opslaan die het grid gaat gebruiken om zelf de data table op te vragen.
Me._tabel = tabel
Me._waarde = waarde
LaadGridCache(datareader)
resetFilterButtons()
End Sub
'Instellen van de data die door selectID form worden meegegeven.
Public Sub LaadData(tabel As Kolommen, waarde As Object)
'De data opslaan die het grid gaat gebruiken om zelf de data table op te vragen.
Me._tabel = tabel
Me._waarde = waarde
'Caché laden.
LaadGridCache()
End Sub
Public Sub voegReworkRedenToe(reden() As String)
Try
toevoegenVanRework(_barcode, reden, _onderdeel, _tabel = Kolommen.barcodesVoorraad)
Catch ex As Exception
MessageBox.Show(ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error)
Application.Exit()
End Try
_barcode = Nothing
_onderdeel = Nothing
refreshReworkButtonsGridCache()
refreshReworkGrid()
End Sub
Private Sub btnVerwerkRework_VisibleChanged(sender As Object, e As System.EventArgs) Handles btnVerwerkRework.VisibleChanged
refreshReworkButtonsGridCache()
refreshReworkGrid()
End Sub
'''
''' Grid laden met ofwel de meegegeven datatable, ofwel de data zelf ophalen aan de hand van de kolom en de waarde.
'''
''' Optionele data table.
Private Sub LaadGridCache(Optional dataTable As DataTable = Nothing)
Try
'De gridview vullen
'Kolommen laten auto-genereren.
DataGridViewCache.AutoGenerateColumns = True
'Controleren of de data table is meegegeven en rijen bevat.
If Not IsNothing(dataTable) AndAlso dataTable.Rows.Count > 0 Then
'Zo ja, laadt de gridview met de data table.
DataGridViewCache.DataSource = dataTable
Else
'Zo neen, controleer type kolom. Dit is nodig om te weten van waar de data table zal komen.
If Not _tabel = Kolommen.barcodeArdis Then
'Ophalen bij Caché.
DataGridViewCache.DataSource = CacheMapper.GeefDataTable(_tabel, _waarde)
Else
'Ophalen bij Ardis.
DataGridViewCache.DataSource = ArdisMapper.geefDataReader(_waarde)
End If
End If
'Refreshen van de grid view.
DataGridViewCache.Refresh()
Catch ex As Exception
MessageBox.Show(ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
'Uitbreid buttons in- of uitschakelen afhankelijk van type kolom (van bij het zoeken).
'Alle buttons zichtbaar maken.
btnToonMeerFilters.Visible = True
btnHuidigeFilter.Visible = True
btnUitbreidenBatch.Visible = True
btnUitbreidenToelevering.Visible = True
'Controleren welk type kolom is gebruikt om te zoeken.
If _tabel = Kolommen.barcode Then
'Barcode kan uitbreiden op batch en toelevering.
btnUitbreidenBatch.Enabled = True
btnUitbreidenToelevering.Enabled = True
ElseIf _tabel = Kolommen.toelevering Then
'Toelevering kan uitbreiden op batch.
btnUitbreidenBatch.Enabled = True
ElseIf _tabel = Kolommen.barcodeArdis Then
'Barcode Ardis verbergt meer filters en huidige filter knoppen.
btnToonMeerFilters.Visible = False
btnHuidigeFilter.Visible = False
Else
'Standaard staan de opties uitbreiden met batch en toelevering op uitgeschakelt.
btnUitbreidenBatch.Enabled = False
btnUitbreidenToelevering.Enabled = False
End If
'Code die het rework grid pas refreshed als hoofdgrid gegenereerd is.
'Don't ask why it's necessary.
'Pls don't touch.
If _gegenereerd Then
refreshReworkGrid()
End If
End Sub
'selectie van veld afzetten voor beide grids
Private Sub DataGridViewCache_SelectionChanged(sender As System.Object, e As System.EventArgs) Handles DataGridViewCache.SelectionChanged
DataGridViewCache.ClearSelection()
End Sub
Private Sub DataGridViewReworks_SelectionChanged(sender As System.Object, e As System.EventArgs) Handles DataGridViewReworks.SelectionChanged
DataGridViewReworks.ClearSelection()
End Sub
'CACHE
'instellen kolommen en opmaak verzorgen nadat data in grid is geladen
Private Sub DataGridViewCache_DataBindingComplete(sender As System.Object, e As System.Windows.Forms.DataGridViewBindingCompleteEventArgs) Handles DataGridViewCache.DataBindingComplete
'de zelf toegevoegde kolommen achteraan zetten, OPGELET INDEXEN IN CODE,DE ZELF TOEGEVOEGDE KOLOMMEN KRIJGEN INDEX INDEX 0->2, ookal staan ze zichtbaar achteraan
For i As Integer = 0 To 2
DataGridViewCache.Columns(i).DisplayIndex = DataGridViewCache.ColumnCount - (3 - i)
Next
For i As Integer = 0 To Me.DataGridViewCache.Rows.Count - 1
'de kolommen voor: toon detail, toevoegen rework, print label tekst geven
Me.DataGridViewCache.Rows(i).Cells("toonDetail").Value = "Toon detail"
Me.DataGridViewCache.Rows(i).Cells("toevoegenRework").Value = "Toevoegen rework"
Me.DataGridViewCache.Rows(i).Cells("print").Value = "Print label"
'de reworks kleuren + leegmaken als 0
If Me.DataGridViewCache.Rows(i).Cells("rework").Value <= 0 Then
Me.DataGridViewCache.Rows(i).Cells("rework").Style.ForeColor = ConfiguratieKleuren.geefReworkKleur(0)
ElseIf Me.DataGridViewCache.Rows(i).Cells("rework").Value = 1 Then
Me.DataGridViewCache.Rows(i).Cells("rework").Style.BackColor = ConfiguratieKleuren.geefReworkKleur(1)
Me.DataGridViewCache.Rows(i).Cells("rework").Style.ForeColor = Color.Black
ElseIf Me.DataGridViewCache.Rows(i).Cells("rework").Value > 1 Then
Me.DataGridViewCache.Rows(i).Cells("rework").Style.BackColor = ConfiguratieKleuren.geefReworkKleur(2)
Me.DataGridViewCache.Rows(i).Cells("rework").Style.ForeColor = Color.Black
End If
'de lijn die bij de onderdelen hoort kleuren
Try
Dim kleur As Color = Configs.geefKleurOnderdeel(Me.DataGridViewCache.Rows(i).Cells("onderdeel").Value)
Dim kolomNaam As String
For teller As Integer = 3 To 9
kolomNaam = Me.DataGridViewCache.Columns(teller).Name
DataGridViewCache.Rows(i).Cells(kolomNaam).Style.BackColor = kleur
Next
'kleur instellen van de status kolom
kleur = ConfiguratieKleuren.geefKleurStatus(Me.DataGridViewCache.Rows(i).Cells("status").Value)
Me.DataGridViewCache.Rows(i).Cells("status").Style.BackColor = kleur
Catch ex As Exception
MessageBox.Show(ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error)
Application.Exit()
End Try
If _tabel = Kolommen.barcode AndAlso Me.DataGridViewCache.Rows(i).Cells("VerwerkingID").Value = _waarde Then
_batchViaBarcodeOfToelevering = Me.DataGridViewCache.Rows(i).Cells("batchID").Value
_toeleveringIdViaBarcode = Me.DataGridViewCache.Rows(i).Cells("toeleveringID").Value
End If
Next
'als er wordt opgezocht met toelevering het batchID opslaan
If _tabel = Kolommen.toelevering Then
If DataGridViewCache.RowCount > 0 Then
_batchViaBarcodeOfToelevering = Me.DataGridViewCache.Rows(0).Cells("batchID").Value
End If
End If
'aligneren van de status en rework kolom
DataGridViewCache.Columns(10).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
DataGridViewCache.Columns(11).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
'zorgen dat de rework knoppen een andere kleur zijn als ze zijn geselecteerd als rework
refreshReworkButtonsGridCache()
End Sub
'klikken op buttons in de gridviewCache
Private Sub DataGridViewCache_CellClick(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridViewCache.CellClick
Dim rowIndex = e.RowIndex
Dim colIndex = e.ColumnIndex
Try
If rowIndex >= 0 And colIndex >= 0 Then 'als er op de header wordt gedrukt geven ze index -1
Dim colName As String = DataGridViewCache.Columns(colIndex).Name
_barcode = DataGridViewCache.Rows(rowIndex).Cells(8).Value.ToString
_onderdeel = DataGridViewCache.Rows(rowIndex).Cells(9).Value.ToString
Select Case colName
Case "toonDetail"
toonDetails(_barcode)
Case "toevoegenRework"
If getInstance.bestaatRework(_barcode) Then
getInstance.verwijderRework(_barcode)
refreshReworkGrid()
refreshReworkButtonsGridCache()
Else
'voor testen default waarde meegeven
If Not Configs.geefVerwerkStatus Then
Dim reden() As String = {"RedenCode", "RedenLabel"}
voegReworkRedenToe(reden)
ElseIf _tabel = Kolommen.barcodesVoorraad Then 'Als het om voorraad in te vullen is wordt niks meegegeven als reden.
Dim reden() As String = {String.Empty, String.Empty}
voegReworkRedenToe(reden)
ElseIf _tabel = Kolommen.barcodeArdis Then
Dim reden() As String = {"Code", "Special zijkant"}
voegReworkRedenToe(reden)
Else
FormController.getInstance.laadFormReworkRedenen(Me, _onderdeel)
End If
End If
Case "print"
printLabelUit(_barcode)
End Select
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error)
Application.Exit()
End Try
End Sub
Private Sub btnToonMeerFilters_Click(sender As System.Object, e As System.EventArgs) Handles btnToonMeerFilters.Click
klapToeOpen()
End Sub
'''
''' Datagrid laden aan de hand van een filter. De data wordt zelf opgehaald.
'''
''' De filter
Private Sub LaadGridCacheMetFilter(filter As String)
Try
DataGridViewCache.AutoGenerateColumns = True
'Data table opvragen en toewijzen aan grid view.
DataGridViewCache.DataSource = CacheMapper.GeefdataTable(_tabel, _waarde, filter)
DataGridViewCache.Refresh()
'Rework knoppen per rij een keer laten updaten.
refreshReworkButtonsGridCache()
Catch ex As Exception
MessageBox.Show(ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error)
Application.Exit()
End Try
End Sub
Private Sub toonDetails(barcode As String)
FormController.getInstance.laadFormDetail(Me, barcode)
End Sub
Private Sub toevoegenVanRework(barcode As String, reden() As String, onderdeel As String, voorVoorraad As Boolean)
Try
If getInstance.bestaatRework(barcode) Then
getInstance.verwijderRework(barcode)
Else
getInstance.addRework(barcode, reden, onderdeel, voorVoorraad)
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error)
Application.Exit()
End Try
refreshReworkGrid()
refreshReworkButtonsGridCache()
End Sub
Private Sub genereerKolommenReworkGrid()
'de kolommen toevoegen en benoemen
DataGridViewReworks.ColumnCount = 5
DataGridViewReworks.Columns(2).Name = "Barcode"
DataGridViewReworks.Columns(3).Name = "Onderdeel"
DataGridViewReworks.Columns(4).Name = "Reden rework"
'opslaan ardis en de verwijder kolom achteraan zetten
DataGridViewReworks.Columns(0).DisplayIndex = 4
DataGridViewReworks.Columns(1).DisplayIndex = 4
End Sub
Private Sub refreshReworkGrid()
'leegmaken van de grid
DataGridViewReworks.Rows.Clear()
Try
'de waarden van de reworks ophalen en in de grid steken
Dim index As Integer = 0
For Each rework As String() In getInstance.geefReworks()
Dim row As String() = New String() {rework(3), "verwijder", rework(0), rework(1), rework(2)}
DataGridViewReworks.Rows.Add(row)
'de lijn die bij de onderdelen hoort kleuren
Dim kleur As Color = Configs.geefKleurOnderdeel(rework(1))
DataGridViewReworks.Rows(index).Cells(2).Style.BackColor = kleur
DataGridViewReworks.Rows(index).Cells(3).Style.BackColor = kleur
'het vak kleuren dat opslaan in Ardis regelt
Me.DataGridViewReworks.Rows(index).Cells("opslaanArdis").Style.BackColor = ConfiguratieKleuren.geefOpslaanArdisKleur(rework(3))
index += 1
Next
Catch ex As Exception
MessageBox.Show(ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error)
Application.Exit()
End Try
Try
'label dat aantal reworks bijhoud updaten
lblAantalReworks.Text = getInstance.geefAantalReworks
'button enabled maken als reworks aantal hoog genoeg is
If getInstance.geefAantalReworks > 0 Then
btnVerwerkRework.Enabled = True
Else
btnVerwerkRework.Enabled = False
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error)
Application.Exit()
End Try
End Sub
'klikken op buttons in de gridviewReworks
Private Sub DataGridViewReworks_CellClick(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridViewReworks.CellClick
Dim rowIndex = e.RowIndex
Dim colIndex = e.ColumnIndex
Try
If rowIndex >= 0 And colIndex >= 0 Then 'als er op de header wordt gedrukt geven ze index -1
Dim barcode As String = DataGridViewReworks.Rows(rowIndex).Cells(2).Value.ToString
If DataGridViewReworks.Columns(colIndex).Name.Equals("verwijderRework") Then
getInstance.verwijderRework(barcode)
refreshReworkGrid()
refreshReworkButtonsGridCache()
ElseIf DataGridViewReworks.Columns(colIndex).Name.Equals("opslaanArdis") Then
getInstance.wijzigOpslaanArdisRework(barcode)
refreshReworkGrid()
End If
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Private Sub refreshReworkButtonsGridCache()
For i As Integer = 0 To Me.DataGridViewCache.Rows.Count - 1
Try
'kijken wat de barcode is van de lijn
Dim barcode As String = Me.DataGridViewCache.Rows(i).Cells(8).Value
If getInstance.bestaatRework(barcode) Then
Me.DataGridViewCache.Rows(i).Cells("toevoegenRework").Style.BackColor = ConfiguratieKleuren.geefReworkKleur(2)
Me.DataGridViewCache.Rows(i).Cells("toevoegenRework").Value = "Verwijder rework"
Else
'als barcode is gebruikt om op te vragen, laten zien welke rij correspondeerd met de barcode (barcode geeft meer dan 1 resultaat)
If (_tabel = Kolommen.barcode Or _tabel = Kolommen.barcodeArdis) AndAlso CStr(Me.DataGridViewCache.Rows(i).Cells("VerwerkingID").Value).ToUpper = CStr(_waarde).ToUpper Then
Me.DataGridViewCache.Rows(i).Cells("toevoegenRework").Style.BackColor = ConfiguratieKleuren.geefReworkKleur(1)
_batchViaBarcodeOfToelevering = Me.DataGridViewCache.Rows(0).Cells("batchID").Value
_toeleveringIdViaBarcode = Me.DataGridViewCache.Rows(0).Cells("toeleveringID").Value
Else
Me.DataGridViewCache.Rows(i).Cells("toevoegenRework").Style.BackColor = DefaultBackColor
End If
Me.DataGridViewCache.Rows(i).Cells("toevoegenRework").Value = "Toevoegen rework"
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Next
End Sub
Private Sub printLabelUit(barcode As String)
FormController.getInstance.laadFormLabel(Me, barcode)
End Sub
Private Sub btnSelectie_Click(sender As System.Object, e As System.EventArgs) Handles btnSelectie.Click
FormController.getInstance.laadFormSelectID(Me)
End Sub
'als uit form wordt gegaan openklap menu verbergen
Private Sub FormGrid_VisibleChanged(sender As System.Object, e As System.EventArgs) Handles MyBase.VisibleChanged
panelFilterButtons.Visible = False
End Sub
Private tussenruimteButtons(1) As Integer
'configureren van de grootte van de filter buttons
Private Sub configureerGrootteFilterButtons()
Dim verhouding As Double = 80 / 1080
btnToonAlles.Height = verhouding * Me.Size.Height
verhouding = 90 / 1080
tussenruimteButtons(0) = verhouding * Me.Size.Height
verhouding = 18 / 1080
tussenruimteButtons(1) = verhouding * Me.Size.Height
End Sub
'maken van de filter buttons en ze in het panel zetten + kleur
Private Sub genereerFilterButtons()
Try
Dim onderdelen As List(Of String) = Configs.Onderdelen
panelFilterButtons.Height = onderdelen.Count * btnHuidigeFilter.Height
panelFilterButtons.Width = btnToonAlles.Width
panelFilterButtons.AutoSize = True
panelFilterButtons.AutoSizeMode = Windows.Forms.AutoSizeMode.GrowAndShrink
For index As Integer = 0 To onderdelen.Count - 1
Dim newButton = New Windows.Forms.Button
newButton.AutoSize = False
newButton.Name = "btn" + CStr(index)
newButton.Text = "Filter op " + onderdelen(index).ToLower
newButton.Top = (index + 1) * tussenruimteButtons(0) + tussenruimteButtons(1)
newButton.Font = New Font("Microsoft Sans Serif", 15)
newButton.BackColor = Configs.geefKleurOnderdeel(onderdelen(index))
newButton.Size = btnToonAlles.Size
AddHandler newButton.Click, AddressOf ButtonClicked
panelFilterButtons.Controls.Add(newButton)
Next
Catch ex As Exception
MessageBox.Show(ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error)
Application.Exit()
End Try
End Sub
Private gedrukteKnop As Button
Private Sub ButtonClicked(sender As Object, e As EventArgs)
If gedrukteKnop IsNot Nothing Then
gedrukteKnop.Enabled = True
gedrukteKnop = Nothing
End If
'de "toon alles" button enabled maken
btnToonAlles.Enabled = True
'kijken op wat de button sorteert
Dim button As Button = sender
Dim filter As String = button.Text.Replace("Filter op", "").Trim
'grid laden met filter
laadGridCacheMetFilter(filter)
'laten zien op wat er gesorteert wordt en de button disbled maken
btnHuidigeFilter().Text = "Gefilterd op " + filter
btnHuidigeFilter.BackColor = Configs.geefKleurOnderdeel(filter)
button.Enabled = False
gedrukteKnop = button
'openklap menu verbergen
klapToeOpen()
End Sub
Private Sub btnToonAlles_Click(sender As System.Object, e As System.EventArgs) Handles btnToonAlles.Click
LaadGridCache()
klapToeOpen()
resetFilterButtons()
End Sub
Private Sub resetFilterButtons()
btnToonAlles.Enabled = False
btnHuidigeFilter.Text = ""
btnHuidigeFilter.BackColor = DefaultBackColor
If gedrukteKnop IsNot Nothing Then
gedrukteKnop.Enabled = True
gedrukteKnop = Nothing
End If
'knop verbergen als er werd gezocht via iets dat niet gefilterd mag worden
If _tabel = Kolommen.barcodesVoorraad Then
btnToonMeerFilters.Enabled = False
Else
btnToonMeerFilters.Enabled = True
End If
End Sub
Private Sub klapToeOpen()
panelFilterButtons.Visible = Not panelFilterButtons.Visible
End Sub
'uitbreiden tot batch/levering
Private Sub btnUitbreidenBatch_Click_1(sender As System.Object, e As System.EventArgs) Handles btnUitbreidenBatch.Click
_tabel = Kolommen.batch
_waarde = _batchViaBarcodeOfToelevering
btnUitbreidenBatch.Enabled = False
btnUitbreidenToelevering.Enabled = False
LaadGridCache()
resetFilterButtons()
End Sub
Private Sub btnUitbreidenToelevering_Click(sender As System.Object, e As System.EventArgs) Handles btnUitbreidenToelevering.Click
_tabel = Kolommen.toelevering
_waarde = _toeleveringIdViaBarcode
btnUitbreidenToelevering.Enabled = False
LaadGridCache()
resetFilterButtons()
End Sub
Private Sub btnVerwerkRework_Click(sender As System.Object, e As System.EventArgs) Handles btnVerwerkRework.Click
Try
getInstance.verdeelReworkZijkantenOverReworkTray()
refreshReworkButtonsGridCache()
refreshReworkGrid()
If Domeincontroller.getInstance.geefAantalReworkTrays <= 0 Then
Domeincontroller.getInstance.verwerkReworks()
FormController.getInstance.laadFormSelectID(Me)
Else
FormController.getInstance.laadFormReworkTrayPrinter(Me)
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "Er is een fout opgetreden...", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Private Sub FormGrid_SizeChanged(sender As System.Object, e As System.EventArgs) Handles MyBase.SizeChanged$
stelInitieleSizeWaardenIn()
Dim grootte As Integer = Math.Floor(14 * (Me.Size.Width / CDbl(1920)))
DataGridViewCache.DefaultCellStyle.Font = New Font("Microsoft Sans Serif", grootte)
DataGridViewCache.ColumnHeadersDefaultCellStyle.Font = New Font("Microsoft Sans Serif", grootte)
DataGridViewReworks.ColumnHeadersDefaultCellStyle.Font = New Font("Microsoft Sans Serif", grootte)
DataGridViewReworks.ColumnHeadersDefaultCellStyle.Font = New Font("Microsoft Sans Serif", grootte)
Dim standaardHoogte As Integer = DataGridViewCache.RowTemplate.Height
Dim hoogte As Integer = (If(Me.Size.Height > 1080, 1080, Me.Size.Height) - _initiëleHoogteElementenBuitenDataGridViewCache)
hoogte -= hoogte Mod DataGridViewCache.ColumnHeadersHeight
DataGridViewCache.Height = hoogte
End Sub
Private Sub stelInitieleSizeWaardenIn()
If _initiëleHoogteElementenBuitenDataGridViewCache <= 0 Then
'hoogte van alle elementen buiten datagridview cache opslaan
_initiëleHoogteElementenBuitenDataGridViewCache = 1080 - DataGridViewCache.Size.Height
End If
End Sub
End Class