|
|||||||
|
|
|
![]() |
|
|
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: 13:57.


















