PDA

View Full Version : [VB.NET] Datagridview formattazione e valori di default


jackk87
23-08-2010, 20:51
Buonasera,
nel mio programma ho il seguente datagridview (allegato)
dove l'utente inserisce i dati nel datagridview come se si stesse utilizzando excel solo che nel campo prezzo e importo avrei bisogno della formattazione in euro ho provato a utilizzare:

dgwArticoli.Columns(3).DefaultCellStyle.Format = "€ ##,##0.00"


oppure


dgwArticoli.Columns(3).DefaultCellStyle.Format = "C2"


ho provato anche a farlo dall'editor ma la formattazione non funziona vado a inserire per esempio 12 e non cambia in € 12.00 qualcuno può aiutarmi?

vorrei sapere se è possibile mettere i valori predefiniti per esempio per il prezzo € 0.00 come si può fare in access?

grazie a tutti in anticipo :help:

jackk87
23-08-2010, 21:19
Per il valore predefinito ho risolto così:


Private Sub dgwArticoli_DefaultValuesNeeded(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowEventArgs) Handles dgwArticoli.DefaultValuesNeeded
e.Row.Cells("prezzo").Value = "€ 0.00"
e.Row.Cells("quantita").Value = "1"
e.Row.Cells("importo").Value = "€ 0.00"
End Sub

MarcoGG
24-08-2010, 11:09
Spero che in VS 2010, che ancora non ho, abbiano messo a posto anche questa cosa della formattazione currency delle celle, perchè così com'è fa proprio un po' schifo.

Per ora risolvo così :
Dim C As New DataGridViewTextBoxColumn
C.ValueType = GetType(Double)
C.DefaultCellStyle.Format = "€ 0.00"
C.DefaultCellStyle.NullValue = "0.00"
C.Name = "PrezzoEuro"
C.HeaderText = "Prezzo Euro"
' Altre impostazioni per la colonna C ...
' ...
dgwArticoli.Columns.Add(C)

1. E' necessario specificare il ValueType della colonna.
2. Il Format che hai usato tu non è corretto.
3. Il valore di default va messo in DefaultCellStyle.NullValue, passato come stringa.

Nel mio caso creo la colonna e la aggiungo a runtime. Lascio a te provare a fare lo stesso con colonna preesistente o con il designer... ;)

jackk87
24-08-2010, 11:19
Grazie come sempre marcogg provo e ti faccio sapere :D

jackk87
24-08-2010, 14:26
Grazie MarcoGG funziona tutto perfettamente :D