Moin!
ich habe einmal wieder ein Problem mit einer Auswahlbox bei DataGridviews.
Es soll mitgezählt werden wieviele Einträge gewählt wurden. Dazu gibt es folgenden Code:
Nach meiner Auffassung müsste immer, wenn ein Haken in der Spalte 0 gesetzt bzw. entfernt wird die Funktion
aufgerufen werden. Wird es aber nicht - meist nach dem 2. erst.
Kann mir einer weiterhelfen?
Gruß Jan
ich habe einmal wieder ein Problem mit einer Auswahlbox bei DataGridviews.
Es soll mitgezählt werden wieviele Einträge gewählt wurden. Dazu gibt es folgenden Code:
VB.NET-Quellcode
- Imports System.Windows.Forms
- Imports System.Data.OracleClient
- Public Class frm_GrdStkInfoUmzug
- Public _FID_GstSource As Long = -1
- Public _FID_GstTarget As Long = -1
- Public _TotalCountRecord As Integer = 0 'Gesamtzahl der Datensätze
- Public _TotalCountRecordSelected As Integer = 0 'Anzahl der gewählten Datensätze
- Public Event DataError As DataGridViewDataErrorEventHandler
- ''' <summary>
- ''' Abfangen von Fehlern in der Befüllung - Projekt
- ''' </summary>
- Private Sub DataGridView_DataError(ByVal sender As Object, _
- ByVal e As DataGridViewDataErrorEventArgs) _
- Handles DataGridView.DataError
- MessageBox.Show("Fehler aufgetreten " _
- & e.Context.ToString())
- If (e.Context = DataGridViewDataErrorContexts.Commit) _
- Then
- MessageBox.Show("Fehler übergeben (commit)")
- End If
- If (e.Context = DataGridViewDataErrorContexts _
- .CurrentCellChange) Then
- MessageBox.Show("Zell wechsel")
- End If
- If (e.Context = DataGridViewDataErrorContexts.Parsing) _
- Then
- MessageBox.Show("Parsing-Fehler")
- End If
- If (e.Context = _
- DataGridViewDataErrorContexts.LeaveControl) Then
- MessageBox.Show("Fehler beim Verlassen des Steuerelementes")
- End If
- If (TypeOf (e.Exception) Is ConstraintException) Then
- Dim view As DataGridView = CType(sender, DataGridView)
- view.Rows(e.RowIndex).ErrorText = "ein Fehler"
- view.Rows(e.RowIndex).Cells(e.ColumnIndex) _
- .ErrorText = "ein Fehler"
- e.ThrowException = False
- End If
- End Sub
- ''' <summary>
- ''' Überwachen der Spalte mit den Auswahlhaken
- ''' </summary>
- Public Sub DataGridView_SelectionColumnControlling(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView.CellValueChanged
- Dim DVGRow As DataGridViewRow
- For Each DVGRow In DataGridView.Rows
- If CType(DVGRow.Cells(0).Value, Boolean) = True Then
- _TotalCountRecordSelected = _TotalCountRecordSelected + 1
- VisibleControlButtonDo()
- Exit Sub
- Else
- _TotalCountRecordSelected = _TotalCountRecordSelected - 1
- VisibleControlButtonDo()
- Exit Sub
- End If
- Next
- End Sub
- ''' <summary>
- ''' Überwachung der Schaltfläche für die "Verschieben"-Schaltfläche
- ''' </summary>
- ''' <remarks></remarks>
- Private Sub VisibleControlButtonDo()
- If _TotalCountRecordSelected = 0 Then
- bt_do.Enabled = False
- Else
- bt_do.Enabled = True
- End If
- End Sub
- ''' <summary>
- ''' Hilfeanbindung
- ''' </summary>
- Private Sub bt_help_Click(sender As Object, e As EventArgs) Handles bt_help.Click
- Process.Start("http://ma22-wiki-001/eblwiki/index.php?title=3.65_Spezialfunktionen_(MapEdit-Handbuch)#Historie_importieren")
- End Sub
- ''' <summary>
- ''' Alle Zeilen der Punktliste markieren
- ''' </summary>
- ''' <param name="sender"></param>
- ''' <param name="e"></param>
- ''' <remarks></remarks>
- Private Sub bt_AlleWählen_Click(sender As Object, e As EventArgs) Handles bt_AlleWählen.Click
- StatusGesamtAuswahlÄndern(True)
- _TotalCountRecordSelected = _TotalCountRecord
- VisibleControlButtonDo()
- End Sub
- ''' <summary>
- ''' Alle Zeilen der Punktliste DEmarkieren
- ''' </summary>
- ''' <param name="sender"></param>
- ''' <param name="e"></param>
- ''' <remarks></remarks>
- Private Sub bt_KeineWählen_Click(sender As Object, e As EventArgs) Handles bt_KeineWählen.Click
- StatusGesamtAuswahlÄndern(False)
- _TotalCountRecordSelected = 0
- VisibleControlButtonDo()
- End Sub
- ''' <summary>
- ''' Setzen von Auswahlhaken
- ''' </summary>
- Private Sub StatusGesamtAuswahlÄndern(ByVal Status As Boolean)
- Dim DVGRow As DataGridViewRow
- For Each DVGRow In DataGridView.Rows
- DVGRow.Cells(0).Value = Status
- Next
- bt_do.Enabled = Status
- End Sub
- End Class
Nach meiner Auffassung müsste immer, wenn ein Haken in der Spalte 0 gesetzt bzw. entfernt wird die Funktion
aufgerufen werden. Wird es aber nicht - meist nach dem 2. erst.
Kann mir einer weiterhelfen?
Gruß Jan