Visualizzazione dei risultati da 1 a 1 su 1
  1. #1

    strano comportamento evento datagridview

    Salve a tutti.
    Ho realizzato un datagridview che ho popolato da codice con alcuni campi della tabella "rifiuti".
    Uno di questi campi, "scarica" è in forma booleana e quindi rappresentato da una checkbox. All'apertura della form contenente il datagridview tutti i record caricati hanno il campo "scarica" su false.
    Quello che vorrei realizzare è un sistema di conteggio istantaneo: ogni volta che seleziono "scarica", il campo associato "quantita" viene utilizzato per un conteggio visualizzato in una textbox. Ogni volta che seleziono o deseleziono una checkbox dovrei visualizzare questo conteggio che rispettivamene si incrementa o decrementa.
    Questo è il codice che ho provato ad utilizzare:


    Imports System.Data.OleDb
    Public Class Scaricorifiuti

    Public Shared cnstring As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Federico\Desktop\corsini.accdb;Per sist Security Info=False;"

    Private Sub Scaricorifiuti_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Dim cn As New OleDbConnection(cnstring)
    Dim sql As String = "SELECT codice, data, quantita, scarica FROM rifiuti WHERE tipologia = 'cenere leggera' ORDER BY id"
    Dim query As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(sql, cn)
    Dim dt As DataTable = New DataTable()

    query.Fill(dt)

    DataGridView1.AutoGenerateColumns = True
    DataGridView1.DataSource = dt

    End Sub

    Private Sub aggiorna(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArg s) Handles DataGridView1.CellMouseClick
    Dim dt As DataTable = DataGridView1.DataSource
    Dim i As Integer
    Dim count As Integer
    For i = 0 To DataGridView1.RowCount - 2
    If dt.Rows(i).Item(3) = True Then
    count = count + dt.Rows(i).Item(2)
    End If
    Next
    TextBox1.Text = count
    End Sub
    End Class



    Utilizzando questo codice però avviene una cosa strana: se seleziono una checkbox il conteggio non varia, ma se seleziono un'ulteriore checkbox, il conteggio si incrementa ma con la quantità della selezione precedente; funziona praticamente in ritardo, ovvero incrementa o decrementa in base alla selezione o deselezione precedente.
    La sub aggiorna è associata all'evento cellmouseclick, ma ho provato anche altri eventi tipo cellclick, cellcontentclick, selectionchanged ecc. Per tutti si comporta nell'analogo modo.
    Spero di essere stato chiaro.
    Aspetto vostri consigli
    Grazie in anticipo
    Federico
    Ultima modifica di Ricofede85; 19-06-2014 a 02:19

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.