Datagridview formatting

giovedì 25 settembre 2008 - 07.15

slackewix Profilo | Newbie

ciao a tutti, rieccomi con un problemino da risolvere:

ho una classica datagridview con articoli con campi quantità, prezzo ecc. Il problema è la formattazione: ho messo un N3 per la quantità e un C2 per il prezzo e fin qui tutto ok. Solo che quando scrivo nella cella dovrei usare solo il tastierino numerico e quindo il punto(.) al posto della virgola(,). Così facendo in questo momento se scrivo 3.521 mi ritorna 3521 e non 3,521.
Nelle textbox normali semplicemente intercetto il keydown, non permetto l'inserimento di lettere e trasformo i punti in virgole. E' possibile fare la stessa cosa in griglia? ho controllato nell'evento cell_formatting, ma quando esamino il value mi ritorna già 3521 e quindi dopo la formattazione. Grazie dell'aiuto

[EDIT] ho notato un'altra cosa: provando a sostituire il punto con la virgola nell'evento endedit, in debug si vede chiaramente come la stringa restituita sia esatta, ma la cella non cambi con il nuovo valore assegnato:

string sValue = grdArticoli.CurrentCell.EditedFormattedValue.ToString().Replace(".", ","); grdArticoli.Rows[e.RowIndex].Cells[5].Value = double.Parse(sValue).ToString("N3");

la gridview è popolata con datagridview.datasource = mydataset; e i campi numerici interessati sono tutti double a db.

[EDIT] Risolto: se servisse a qualcun altro occorre gestire da codice l'evento keypress passando per l'evento editing_control_showing della datagridview:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5