PDA

View Full Version : [VB.NET] Datagridview controlli durante l'inserimento dei dati


jackk87
27-08-2010, 13:19
Buongiorno a tutti,
nel mio programma ho inserito un datagridview che quando lancio la stampa mi stampa il suo contenuto in una tabella con delle righe limitate tipo 22. Quindi avevo pensato di procedere così:
1- Controllare il testo inserito della colonna con index 1 perchè solo lei può superare la la lunghezza di 80 millimentri quindi se supero questa dimensione mi scala di una riga e mando il testo a capo (nella stampa) in modo che avrò sempre al massimo 22 righe.

il codice che utilizzo è :

Dim righetotalidgw As Integer = 22
Dim lunghezza As String = 80

Private Sub dgwArticoli_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgwArticoli.CellEndEdit
If e.ColumnIndex = 1 Then
lunghezza = 80
End If
End Sub

Private Sub dgwArticoli_CellValueChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgwArticoli.CellValueChanged
If start > 0 Then
If e.ColumnIndex > 1 And e.ColumnIndex < 4 Then
dgwArticoli.Rows(e.RowIndex).Cells(4).Value = dgwArticoli.Rows(e.RowIndex).Cells(2).Value * dgwArticoli.Rows(e.RowIndex).Cells(3).Value
End If
If e.ColumnIndex = 1 Then
Dim a As Graphics
'Controllo se il testo ha superato il limite di lunghezza se si scalo una riga
If a.MeasureString(dgwArticoli.Item(1, e.RowIndex).Value, Fontdgw).Width > CentesimiPollice(lunghezza) Then
righetotalidgw = righetotalidgw - 1
lunghezza = lunghezza + 80
'se non si possono inserire più le righe blocco l'inserimenti delle righe
'e(l) 'edit della colonna
If righetotalidgw = 0 Then
dgwArticoli.AllowUserToAddRows = False
dgwArticoli.Columns(1).ReadOnly = True
End If
End If
End If
End If
End Sub


il problema è che dgwArticoli_CellValueChanged scatta solo alla fine dell'edit mentre a me mi servirebbe con funziona il TextChanged delle textbox inoltre mi da l'errore sulla stringa a.MeasureString(dgwArticoli.Item(1, e.RowIndex).Value, Fontdgw).Width > CentesimiPollice(lunghezza)
ma i dati si trovano tutti e non riesco a capire il problema.
L'idea che ho da sviluppare si può fare oppure dovrò limitarmi semplicemente impostando un limite di caratteri in modo da non far superare la lunghezza della cella?
Grazie in anticipo a tutti :help:

jackk87
28-08-2010, 08:44
up