|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Nov 2005
Città: Asti
Messaggi: 185
|
[C#] Formattazione Condizionale
Qualcuno sa come applicare la formattazione condizionale in un datagridview ?
Grazie Mille in anticipo
__________________
acer 3023 - Ibook g4 - Asus Pro31sr - Asus eeePc - Samsung rc530 - Dell Studio - Iconia Tab A500 - Nexus 7 - GS2 -GS3 |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Devi utilizzare gli eventi CellParsing e CellFormatting.
Se non definisci un DefaultCellStyle di base, in quei due eventi dovrai scrivere molte righe di codice. Ti faccio un esempio: Codice:
//supponiamo di avere una griglia nella quale per ogni cella al //valore inserito dall'utente voglio aggiungere .00 se l'utente inserisce un numero intero //per esempio inserisce: 5 e quando lascia la cella il risultato deve diventare: 5.00 private void miaGridView_CellParsing(object sender, DataGridViewCellParsingEvent e) { for(int count = minValoreColonne; count < maxValoreColonne; count++) { if(miaGridView.Columns[e.ColumnIndex].Index == count) { if(e != null) { if(e.Value != null) { try { e.Value = Int32.Parse(e.Value.ToString()).ToString("N2").Replace(",","."); e.ParsingApplied = true; } catch(FormatException) { e.ParsingApplied = false; } //..... } Codice:
//per esempio voglio formattare il valore come data e ora breve: private void miaGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { DateTime myDate; try { for(int count = minValoreColonne; count < maxValoreColonne; count++) { if(e.Value != null && e.ColumnIndex == count) { if(DateTime.TryParse(e.Value.ToString(), out myDate)) { e.Value = myDate.ToShortTimeString(); e.FormattingApplied = true; } } } } catch(FormatException ex) { MessageBox.Show("Formato non corretto"); e.FormattingApplied = false; } }
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Nov 2005
Città: Asti
Messaggi: 185
|
Grazie Mille ,
Adesso provo ![]()
__________________
acer 3023 - Ibook g4 - Asus Pro31sr - Asus eeePc - Samsung rc530 - Dell Studio - Iconia Tab A500 - Nexus 7 - GS2 -GS3 |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Nov 2005
Città: Asti
Messaggi: 185
|
Ho visto ma io intendevo proprio una formattazione condizionale ( come quella di Excel per capirsi )
Ad esempio : Se il valore nella cella è minore di 1 colora di rosso , se è uguale di giallo se è maggiore di verde . Dal report designer sono riuscito a farlo senza problemi ma nel datagridview non riesco proprio .
__________________
acer 3023 - Ibook g4 - Asus Pro31sr - Asus eeePc - Samsung rc530 - Dell Studio - Iconia Tab A500 - Nexus 7 - GS2 -GS3 |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
allora ti basta (sempre in quegli eventi) definire un metodo che faccia qualcosa tipo:
Codice:
for(int i = min; i < max; i++) { if(datagridview.Rows[r].Cells[i].Value < 1) { datagridview.Rows[r].DefaultCellStyle.BackColor = Color.Red; } }
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:53.