Ligne particulière d'un datagrid...

ratsimisampy Messages postés 37 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 4 mai 2006 - 17 nov. 2005 à 11:03
ratsimisampy Messages postés 37 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 4 mai 2006 - 24 nov. 2005 à 17:30
bonjour
voici mon pbm:

J’ai une dataset que j’affiche dans une datagrid, pas de soucis.
Ensuite,je voudrais que pour les lignes dont ,par exemple, un champ spécifié nest pas renseigné,
la couleur de la ligne concernée soit différente des autres.

autre explication : par ex, je voudrai afficher en rouge les commandes qui nont pas été facturées.

auriez vous une idée ou une indicaion à me donner?



RRR

8 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
17 nov. 2005 à 11:13
Voila un exemple(en vb.Net) qui montre comment customizer son Datagrid afin de faire ce que tu souhaites.
Si tu peux te permettre d'utiliser du .Net 2, alors tu pourrais utiliser un DataGridView, qui permet de faire ca beaucoup plus facilement

Mx
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
17 nov. 2005 à 11:15
http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp#q745q' target='_blank'>Autre petite lecture

Mx
0
ratsimisampy Messages postés 37 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 4 mai 2006
24 nov. 2005 à 09:43
bonjour et merci pour ta réponse,

j'ai donc un code interressant qui permet de colorer les cellules particulières dun datagrid (que je pourrai exploiter par la suite). c'est une classe qui hérite de la classe datagridtextboxcolumn avec un override sur la méthode paint. l'ennui c'est que je ne sais pas comment intégrer cette classe et utiliser la propriété colorée des cellule dans mon projet

public class DataGridColoredTextBoxColumn : DataGridTextBoxColumn

{
protected override void Paint(System.Drawing.Graphics g,
System.Drawing.Rectangle bounds, System.Windows.Forms.CurrencyManager
source, int rowNum, System.Drawing.Brush backBrush, System.Drawing.Brush
foreBrush, bool alignToRight)
{

// the idea is to conditionally set the foreBrush and/or backbrush

// depending upon some crireria on the cell value

// Here, we color anything that begins with a letter higher than 'F'

try{

object o = this.GetColumnValueAtRow(source, rowNum);

if( o!= null)

{
char c = ((string)o)[0];
if( c > 'F')
{
// could be as simple as
// backBrush = new SolidBrush(Color.Pink);
// or something fancier...

backBrush = new LinearGradientBrush(bounds,
Color.FromArgb(255, 200, 200),

Color.FromArgb(128, 20, 20),

LinearGradientMode.BackwardDiagonal);

foreBrush = new SolidBrush(Color.White);

}
}
}

catch(Exception ex){ /* empty catch */ }

finally{

// make sure the base class gets called to do the drawing with

// the possibly changed brushes

base.Paint(g, bounds, source, rowNum, backBrush, foreBrush, alignToRight);
}
}
}

RRR
0
ratsimisampy Messages postés 37 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 4 mai 2006
24 nov. 2005 à 09:46
désolé pour laffichage, les saut de ligne ne sont pas pris en compte
RRR
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
24 nov. 2005 à 10:09
Si tu utilises Opéra, passe plutôt par Firefox ou IE.
Sinon essaie d'utiliser la zone de saisie "TextBox classique" (cf lien en bas de page)

/*
coq
MVP Visual C#
*/
0
ratsimisampy Messages postés 37 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 4 mai 2006
24 nov. 2005 à 13:23
bonjour et merci pour ta réponse,j'ai donc un code interressant qui permet de colorer les cellules particulières dun datagrid (que je pourrai exploiter par la suite). c'est une classe qui hérite de la classe datagridtextboxcolumn avec un override sur la méthode paint. l'ennui c'est que je ne sais pas comment intégrer cette classe et utiliser la propriété colorée des cellule dans mon projet

public class DataGridColoredTextBoxColumn : DataGridTextBoxColumn
{
protected override void Paint(System.Drawing.Graphics g, System.Drawing.Rectangle bounds, System.Windows.Forms.CurrencyManager source, int rowNum, System.Drawing.Brush backBrush, System.Drawing.Brush foreBrush, bool alignToRight)
{
// the idea is to conditionally set the foreBrush and/or backbrush
// depending upon some crireria on the cell value
// Here, we color anything that begins with a letter higher than 'F'
try
{
object o = this.GetColumnValueAtRow(source, rowNum);
if( o!null) { char c ((string)o)[0];
if( c > 'F')
{ // could be as simple as
// backBrush = new SolidBrush(Color.Pink);
// or something fancier...
backBrush new LinearGradientBrush(bounds, Color.FromArgb(255, 200, 200), Color.FromArgb(128, 20, 20), LinearGradientMode.BackwardDiagonal); foreBrush new SolidBrush(Color.White);
}
} }
catch(Exception ex)
{ /* empty catch */ }
finally
{
// make sure the base class gets called to do the drawing with
// the possibly changed brushes

base.Paint(g, bounds, source, rowNum, backBrush, foreBrush, alignToRight);
}
} }
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
24 nov. 2005 à 16:59
http://www.csharpfr.com/code.aspx?ID=11453

Jette un oeil a cette source, tu y trouveras peut-etre ton bonheur
Mx
0
ratsimisampy Messages postés 37 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 4 mai 2006
24 nov. 2005 à 17:30
thanks mx, je vais essayer de me debrouiller avec ca
0
Rejoignez-nous